User Tools

Site Tools


Перевод, оригинал Borodin Oleg, experience of development

Опыт разработки

преамбула

  • Я знаю и использую управление проектами, расчет соглашений, работу, риски, компетенции, стоимость, время и другие вещи.
  • У меня есть знания о передовой практике и опыт в жизненном цикле инженерных систем.
  • Я создаю системы уровня предприятия, но я также люблю создавать отдельные приложения как часть этого.

примеры

Здесь я приведу примеры с открытым исходным кодом, и работающие примеры за последние несколько лет.

Примеры корпоративных приложений и сервисов я не могу публиковать в соответствии с элементарными соглашениями и правилами безопасности.

по порядку формальных языков

  • C++ : веб-сервер, корпоративный сценарий использования для микросервисов
  • Javascript : веб-сервер, корпоративный сценарий использования мини-приложения
    • образец на основе фреймворка Express.js/Koa.js Lorem ,
    • иcходные тексты Github Lorem
  • Typescript : веб-интерфейс, корпоративный сценарий использования мини-приложения
  • Perl5
    • Образец классических мини приложения MVC на основе Mojolicious MiniCA , Mail Accounter, …
    • исходные тексты MiniCA, Maacom, …
  • Ruby: использую только для скриптов (обработка данных/сетевых запросов)
  • Python: использую только для скриптов
  • PHP: иногда использую для плагинов для различных корпоративных приложений
  • Голанг: если вы много заплатите. Очень много. Или приставите пистолет к моей голове. =) (На самом деле, я могу писать на Go lang. Вокруг Go много хороших компонентов.)

Я использую простую коцепцию “Поиск вокруг, инвестировать в исследования, использовать инструмент по потребностям”. Для инструментов разработки аналогично.

Заметки

Для каждодневной работы с 2007 года я использую собственную сборку с FreeBSD + XFCE + 1/2 Gnome + множество Unix-приложений.
Для разработки я использую Code::Block, Geany, иногда QtCreator. Много лет назад также использовал Emacs.

Конечно, я использую все возможные / необходимые методы отладки, трассировки, проверки и контроля версий кода.

Для создания корпоративной системы я использую различные типы Unix-подобных операционных систем: Linux, FreeBSD, иногда SunOS / OpenIndiana и другие производные. Я использую Linux с 1997 года для самых различных целей.

Я понимаю преимущества и ограничения различных систем разработки приложений, фреймворков и других вычислительных систем.

Для разработки я повсеместно использую

  • HTTP/JSON и другие виды RPC,
  • асинхронное исполнение и многопоточность
  • разные парсеры,
  • системы сигналов и событий,
  • объектное предсталение SQL данных,
  • … так далее

Angular2: я использую все возможности. Хороший фреймворк.
Иногда для приложения на одну-две страницы (например, “посмотреть некоторые записи/результаты из xyz”) я использовал фреймворк Vue.js.

Для самообразования и расширения опыта я делаю встроенные автоматы на ARM процессорах, OpenCM (базовая библиотека ARM MCU с открытым исходным кодом), FreeRTOS, newlib (libc для встроенных систем) и/или на чистом C.
Для примера:

Время обучения в качестве примера

  • Для более или менее уверенной разработки приложений Angular у меня ушло 2 месяца на написание приложений, изучение компонентов инфраструктуры и обдумывание их возможной архитектуры.
  • Для построения стабильных встроенных систем ARM с датчиками по шине и радиосвязи, в реальном времени и/или асинхронных вычислений я изучал и разрабатывал около 2 месяцев. Примеры из Интернет, рукодства на 1400 страниц, описание протоколов и пошаговое написание компонент.

как итог

Я умею создавать, создавать приложения, которые являются работающей частью дела.

Я хочу создавать полезные приложения. И я понимаю, что успешное ведение дела требует целенаправленных совместных усилий многих людей, способных производить продуманные продукты.

Мой опыт и знания говорят мне об этом.