The Art of Software Development • Sander Mak • GOTO 2023
Интересное обзорное выступление от Sander Mak насчет того, а насколько software engineering реально про инженрную состоавляющую, а в какой части это больше про искусство. В выступлении примерно такая структура:
- А инженеры ли мы? Или мы ученые из сферы computer science? - Нет мы все художники (artists)
- Потому что software development - это про создание абстракций из реального мира в нашем софте
- Дальше автор обсуждает написание кода и говорит про общие принципы и подходы, а потом про вкручивание правил в линтеры, чтобы "художники" не обсуждали вопросы уровня пролемы vs табы. В общем, цель в том, чтобы не увлекаться инструментами и незначимыми деталями, а писать код, который обеспечивает работу выбранных абстракций
- Следующим идет тестирование, причем конкретно unit testing и о чем надо говориться перед написание тестов - тема раскрыта не полностью, но смысл примерно тот же - договоритесь о правилах и дальше сделайте их проверку частью инженерной культуры:)
- Потом приходит очередь дизайна и архитектуры - эта тема мне тоже показалась очень скомканной - автор говорит, что эта часть работы важна и экономит много времени за счет того, что мы сначала думаем, а помто кодим. В итоге, он дает отсылку к выступлению Саймона Брауна The lost art of software design by Simon Brown at Devoxx Belgium 2022, про которое я уже рассказывал раньше
- Предпоследняя часть посвящена процессам - тут автор по верхам задевает скрам и waterfall, но рекомендует вспомнить, что работаем мы с людьми, поэтому читайте "Peopleware: Productive Projects and Teams" от Tom DeMarco и Tim Lister, да будет вам счастье
- Ну и последняя тема посвящена тому, а как мы учимся тому, как писать код - ответ автора в том, что мы учимся на практике, а не из книг, поэтому идите и пишите код, а если вы считаете, что уже умеете, то вам стоит стать ментором для новичков
В общем, получилось интересное по структуре выступление, с интереными мыслями, но многие из которых раскрыты слишком поверхностно как мне показалось.
#SoftwareArchitecture #Architecture #SystemDesign #Software #SoftwareDevelopment #DistributedSystems #Management #Leadership #Engineering