TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #1682 1.48K
Второй сериал из 12 материалов СильныхИдей: продолжаем тему software design с акцентом на programming in small, и немного затронем programming in large.
(уровень понимания крепкий джуниор, но наверняка этим темам вас никто не учил даже в универе :)
Так они доступны только моим курсантам, но тут расширенные версии, дополненные множеством примеров (преимущественно на Java).

Цена до завтрашнего дня: 1499 рублей.
Формат - html-гайд, в архиве 38 файлов, 200 тыс. знаков чистого текста.
Доступен на бусти.

=

(Предыдущий сериал из 14 материалов СильныхИдей: БАЗА программной инженерии)

=

Краткое содержание второго сезона:

5 советов по повышению качества проектирования программных систем

Как повысить качество проектирования программных систем?
В ответ на такой вопрос обычно даются шаблонные советы, например:
"Больше работай над практическими проектами".
"Найди хороший проект с открытым кодом и изучай его код."
"Попроси коллегу, чтобы он провел code review".
Если читать между строк, то все это сведётся к "я не знаю"...

Три правила простого проектного дизайна
Как насчёт того, чтобы защитить от ошибок дизайн (в архитектурном смысле) вашего проекта? Как сделать его более удобным для развития и сопровождения?
В тему ещё можно упомянуть выученную беспомощность по Селигману.
И вот как вам не попадать в подобные ловушки ...

Важные принципы хорошего кода
...Ищите общие структуры управления и абстрагируйтесь от них. На самом деле таких шаблонов не так уж много, в СильныхИдеях (и теперь тут) постепенно их выкладываю. Усвойте эти принципы, и у вас появится внутренняя сила, которая не позволит вам писать плохой код, и вы будете блистать на code review!..

Прикладной хак из функционального программирования
Формальная чистота кода в функциональном программировании возведена в ранг святой темы. Однако платой за это становится тот факт, что код программы распухает и начинает занимать всё больший объём. И вот что с этим делать...

Как правильно готовить тесты
"Тестируйте то, что код должен делать, а не то, что он случайно делает".
Как именно вы определяете, какие писать юнит-тесты?
Что на самом деле означает корректность данной фичи?..

Почему любые дефлотные параметры -- зло
Справедливо считается, что использование дефолтных параметров (прежде всего мутабельных) -- зло. Выясняем, как с этим обстоит дело в Python и C#, C++ и TypeScript , F#, Swift, Kotlin и Rust.

Генерация исключений -- зло
С их "помощью" вы получаете слепое пробрасывание исключений, смешение checked и unchecked исключений, непредсказуемые ветвления, рекурсивные выбросы исключений, нарушение иерархии исключений, неполное логирование...

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

Сила низкоуровневых подходов
Я постоянно призываю думать над проектом как можно более сильными абстракциями, и может показаться, что для этого надо использовать только небольшое число функциональных языков со строгой системой типов. Но нет, мне на самом деле очень нравится язык Си...
Некоторые разработчики говорили, что этот материал изменил их вычислительное мировоззрение :) Может быть, это случится и с вами?

Проверяем легаси на прочность
...Есть такая глобальная система бронирования авиабилетов SABRE, API которой существует уже 60 лет ))) и если у вас когда-либо был неудачный опыт работы с авиакомпанией, есть шанс, что частично это было связано с её API.
Когда на ваше API завязано множество сторонних ИТ-систем, вы, возможно, уже никогда не сможете изменить поведение вашего API. Поэтому...

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

4 важных свойства хорошего кода
Если для того, чтобы проверить, работает ли программа правильно, нужно приложить максимум усилий, то, скорее всего, она работает неправильно.
Но при работе с хорошим кодом думать почти не нужно.
  • ✍ 40
  • 👍 9
  • ❤ 7
  • 👏 2
More from @lambda_brain
  1. Sep 25, 2026Гарри Поттер и Методы Математического Мышления Книга 1. Гарри Поттер и Неорганический Инте…
  2. Sep 25, 2026Свежее от ребят (и девчат). ...Так же было собеседование в Сбере, каким то чудом прошел их…
  3. Sep 24, 2026Приятный синхронизм: сразу двое ребят в один день прислали отчёты - второй курс по гомотоп…
  4. Sep 24, 2026Post #2665
  5. Sep 23, 2026Помните, летом я писал, что каждый месяц будет какая-то "новая" AI-темка (шоу должно продо…
  6. Sep 23, 2026Сейчас по сути наступил золотой век разработки программного обеспечения: - вы можете созда…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →