Постов с тегом "разработка ПО": 23

разработка ПО


Необходимость построения архитектуры в твоём проекте


Необходимость построения архитектуры в твоём проекте

«Чистая архитектура» – это книга, которая охватывает не только основы проектирования архитектуры программного обеспечения, но и подходит для тех, кто хочет углубить свои знания в этой области. Роберт Мартин предлагает читателям широкий спектр концепций, принципов и практик разработки, которые помогут создать эффективное и легко поддерживаемое ПО.

В книге освещаются темы, такие как SOLID-принципы, DRY (Don't Repeat Yourself), принцип инверсии зависимостей, а также принцип единственной обязанности. Автор подробно объясняет, как эти принципы и практики могут улучшить структуру и качество вашего кода, делая его более читаемым, гибким и легким в поддержке.

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



( Читать дальше )

Как я разрулил ЖЕСТЬ с Тинькофф* Инвестициями (не начинай выходные пока не узнаешь)

    • 18 февраля 2024, 10:50
    • |
    • Fininja
  • Еще
Дамы и господа, история получила несколько продолжений!
Как я разрулил ЖЕСТЬ с Тинькофф* Инвестициями (не начинай выходные пока не узнаешь)
 Рис. 1: Иноагенты не страшны, если ты пользуешься OsEngine

Итак, пару недель назад многие пользователи Тинькофф* Инвестиций столкнулись с манипуляциями на внебиржевом рынке. По этому поводу я получил убытки, расстроился и написал вот такой пост https://smart-lab.ru/blog/984228.php.

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

Что произошло дальше.

1. Олег Тиньков признан иноагентом уже официально. Поэтому идиотское название брокеру давно пора бы сменить. (Потанинн банк?).



( Читать дальше )

Вопрос продления нулевой ставки по налогу на прибыль для ИТ-компаний активно обсуждается — глава Минцифры РФ Максут Шадаев

Вопрос продления нулевой ставки по налогу на прибыль для ИТ-компаний активно обсуждается — глава Минцифры РФ Максут Шадаев.

Нулевая ставка по налогу на прибыль действует для ИТ-компаний и производителей программно-аппаратных комплексов (ПАК), включенных в реестр российского ПО, до конца 2024 года. С 2025 года ставка должна будет составить 3%. Шадаев в октябре заявлял, что планирует ходатайствовать о продлении этой льготы.

www.interfax.ru/business/933689

Как вкатываются в финансовую отрасль и околорыночную журналистику?

Как вкатываются в финансовую отрасль и околорыночную журналистику?
«Всегда старайся отираться поближе к деньгам. Если будешь отираться достаточно долго, что-нибудь прилипнет и к тебе» – Деймон Раньон
Всем привет в этом чате. Недавно я задумался — а как вообще люди вкатываются в финансовую отрасль или финансовую журналистику, например? Есть ли среди читателей блога люди, работающие в IR отделах публичных компаний? Может кто-то работает в так называемом buy-side — инвестиционном банке, family office, управляющей компании, фонде, ещё какой-нибудь чертяйке? Может кто-то готовит аналитику или пишет статьи для РБК, Коммерсанта, Вестника Старообрядческий Вложений? Расскажите о своих карьерных треках, плюсы и минусы своей работы — очень интересно, правда.
Для чего этот пост? Не только на вас, драгоценных моих, посмотреть, но и себя показать. Так уж вышло, что я никогда в жизни не искал работу. На меня всегда выходили заинтересованные люди и делали предложение от которого невозможно отказаться. И я не отказывался. И ни разу не жалел. Но для получения хорошего предложения нужно всё-таки сделать себе широкую известность в узких кругах. Сегодня в этом бложике триста с гаком подписчиков, ну и чуть больше неподписанных читателей. У меня для вас, ребята, два варианта работы, которой мог бы заняться человечек с образованием инженера и нетривиальным набором навыков, типа меня.

( Читать дальше )

Cбербанк и «Яндекс» создают аналоги GitHub Copilot

Сбербанк, представивший в этом году генеративную нейросеть GigaChat, разработал инструмент разработки и автодополнения кода GigaCode. Возможность создания сервиса для разработчиков на базе искусственного интеллекта (ИИ) рассматривает и «Яндекс». Участники рынка отмечают, что подобные инструменты пока способны дописывать лишь небольшие фрагменты кода. Результат генерации может совпадать с чужим кодом, но юристы не видят в этом рисков ни для владельца сервиса, ни для его пользователей.

Подробнее — в материале «Ъ».

Тестируем стратегию с помощью backtrader

Прошел полный месяц торгов, и мой робот показал +60%

Тестируем стратегию с помощью backtrader

В прошлом посте я просил у вас лайки, на данный пост я потратил 6 часов, которые мог бы потратить на что-то другое. Если вы хотите увидеть следующий пост, где мы уже будем подбирать параметры для нашей торговой системы. С вас 50 лайков :) 

Сам я НЕ программист, мне нравится, когда мне рассказывают все по шагам. Бродя по интернету я нашел блог Игоря Чечета, который выложил небольшой курс по старту в backtrader: https://finlab.vip/wpm-category/btquikstart/

Я просто просмотрел все видео и повторял каждый шаг. Нет никакой магии. Просто смотрите и повторяете у себя. 

Еще раз, для тех, кто читает слишком быстро: Просто смотрим видео, повторяем действия и у вас все получится. 

Тестируем стратегию с помощью backtrader



( Читать дальше )

Разработка и тестирование робота по вашей стратегии!

В прошлом посте  я анонсировал, что мы обязательно что-нибудь протестируем, но что бы вы могли понажимать кнопки и запустить бектрейдер мне понадобится некоторое время. 

Лайки собраны, поэтому наступает момент расплаты для меня. 

Если у вас есть идеи или уже рабочая стартегия, вы можете предложить ее в комментариях. 

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

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

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






3 варианта создания роботов. (личный опыт)

В этой статьи я опишу 3 варианта создания роботов.

На самом деле вариантов очень много, тут опишу только свой опыт. 


OsEngine

плюсы:

все в одном. Можно скачать дату, сделать бэк тесты и запустить в лайв из одного софта. Это очень удобно. 

минусы:

Тяжело для новичков. 

Нужно знать C# чтобы сделать своего робота, C# я знаю плохо и он мне не нравится.


Открыл, понажимал кнопочки, повспоминал C# и понял, что я не готов опять программировать на C#. Скорее всего это какие-то флешбеки из института. Но мне просто не нравится этот язык программирований. 

Заниматься тем, что вам не нравится это плохо…


TradingView + Wonderbit

Как это работает смотрим пост №2

плюсы:

очень просто написать и протестировать стратегию.

минусы: 

очень сложно запустить 10+ роботов. (из опыта)



( Читать дальше )

Чистая архитектура

    Чистая архитектура — продолжение беседы с легендарным дядюшкой Бобом о взглядах на искусство разработки программного обеспечения.  
Обложка книги Чистая архитектура


    Идеальный программист и Чистый код — легендарные бестселлеры Роберта Мартина, рассказывающие, как достичь высот профессионализма. Чистая архитектура продолжает эту тему, но не предлагает несколько вариантов в стиле «решай сам», а объясняет, что именно следует делать, по какой причине и почему именно такое решение станет принципиально важным для вашего успеха.

 

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

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

Цель архитектуры программного обеспечения состоит в уменьшении человеческих трудозатрат на создание и сопровождение системы. Автор обращается к реальному примеру из практики

На первом графике мы можем видеть экспоненциальный рост инженерно-технического персонала, который работает над продуктом одной известной компании. С переходом к новой версии (1 — 8) увеличивается число сотрудников участвующих в разработке и обслуживании системы

 Рост численности инженерно-технического персонала


 Мы наблюдаем совершенно обыкновенную картину, где с переходом к новой версии (1 — 8) увеличивается число сотрудников участвующих в разработке и обслуживании системы. Теперь взглянем на график продуктивности сотрудников

Продуктивность инженерно-технического персонала


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

   В своей книге автор снова упоминает концепцию разработки через тестирование (TDD), о которой я впервые прочитал в его же книге Идеальный программист. Приводит пример эксперимента в котором один программист писал одну и ту же простую программу на протяжении трех дней. В обоих случаях в каждый следующий день он тратил меньше времени, чем в предыдущий, но с использованием методики разработки через тестирование уходило меньше времени.

В следующих разделах книги идет разговор о парадигмах программирования. Автор делает обзор на три из них:

  • структурное 

  • объектно-ориентированное 

  • функциональное


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


Фактически последние полвека мы учились тому, как не надо делать

Важнейший раздел, на котором я рекомендую основательно остановиться как начинающим так и опытным программистам — Принципы дизайна. Также мы их можем узнать по известной аббревиатуре SOLID.

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

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

Например, первый из принципов — принцип единственной ответственности традиционно гласит, что модуль должен иметь одну и только одну причину для изменения, но что или кто есть причина? Автор предпочитает называть причину — актором, в качестве которого выступают группы пользователей вашего приложения, у которых могут быть свои причины для внесения правок в разрабатываемую систему. В качестве осязаемого примера, я бы привел разделение акторов смартлаба на читателей, писателей и комментаторов. Каждому из акторов отводится особенный функционал и при построении системы это необходимо учитывать.

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

К сожалению (а может и к счастью) в книге приводится множество отсылок к технологиям “древнего” программирования, когда в качестве носителей еще использовали перфокарты. Это интересно читать с исторической точки зрения, но если вы хотите черпать новую информацию из книги, эти абзацы можно смело пропускать.

После обсуждения принципов SOLID книга набирает обороты в стороны абстракции, и я не могу сказать, что вынес пользу из прочтения “средних” глав книги — видимо снова проблема в опыте. Такой информационный перегруз мне еще не по зубам.

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

Это такие мелочи, которые пока нас не заботят. Мы решим этот вопрос позже



 
 
Общее впечатление от книги — очень нужная, но трудночитаемая. С каждой следующей главой затрагиваются все более абстрактные термины и автор углубляется в принципы, которые мы не можем проверить здесь и сейчас, поэтому приходится верить ему на слово. Книге с удовольствием поставлю 8/10 и вернусь к прочтению через некоторое время, когда буду готов глубже вникнуть в искусство построения сложной архитектуры.

 

Однако я с уверенностью могу сказать, что настоятельно рекомендую прочесть первые две главы всем, кто участвует в мире разработки программного обеспечения: от начинающих программистов, аналитиков, тестировщиков до проект-менеджеров и руководителей самого высшего звена. Считаю, что именно в первой части содержится неоспоримая истина об управлении любым ИТ подразделением.

 








Рисование графиков в С++

Однажды мне нужно было отрисовать пару графиков в консольной программе, написанной на С++. Можно было решить эту проблему двумя способами:
  1. Сохранить график в файле и нарисовать его в экселе или другой софтине, м.б. даже в онлайн рисовалке
  2. Рисовать график прямиком из программы
Первый способ мне не подходил, так как я проводил тестирование алгоритмов, и лишней возней с копированием данных заниматься не хотелось. Второй способ имеет множество решений, но увы я не нашел быстрого решения, чтобы библиотека для рисования не требовала целую кучу зависимостей. Обычно библиотеки для рисования из С++ программы хотят OpenCV или питон с матлабом. Еще как вариант я знаю SFML и ImGUI. Вопрос — нафига столько всего нужно для обычного графика, если по сути нужен OpenGL и все. Решил исправить эту проблему и набросал header-only С++ библиотеку, которая работает в отдельном потоке и способна рисовать графики зависимостей X от Y и тепловые карты. Из зависимостей библиотека требует FreeGLUT.

( Читать дальше )

....все тэги
UPDONW
Новый дизайн