Не понимаю, если код не покрывать тестами, не рефакторить, не писать безопасный код думать о структурах данных это good? Что такое структура данных?(( Это массивы, объекты?
Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс
Тут можно еще немного в философию уйти. Информатика - это наука о хранении и обработке информации. Т.е. в корне лежит информация, данные. И лежат они именно в структурах данных, в программе мы именно с этим всем и оперируем.
Он имел ввиду главенство архитектуры над кодом. И у него это неплохо получилось.
Прежде чем писать код, тесты и прочее, сначала проработайте архитектуру, и в частности архитектуру данных, их взаимосвязи.
В программировании есть метод DOA - data-driven-architecturehttps://habr.com/ru/company/timeweb/blog/590675/
Такой подход становится очень популярным. А с появлением современных языков програмирования, еще и очень удобным. Например в clojure.
Спасибо вам огромное за столь развёрнутый ответ. Я слышал только о
monolithic architecture
microservices architecture
soa (service oriented architecture),
eda (event driven architecture)
serverless architecture
+ DOA в копилку
Speakermen, алгоритмы, это просто рецепты.
Хотим приготовить борщ, кладем определенный набор ингредиентов. Хотим чизкейк - он делается вот так.
В программировании все в принципе похоже, и это - алгоритмы.
Хотим хотим свяэанеый список, пожалуйста. Хотим сортировку - вот так.
Самый большой сборник алгоритмов описал Дональд Кнут. Рекоменую купить его "искусство программирования", все четыре тома., и вдумчиво читать на ночь в течении нескольких лет!
Большинство алгоритмов уже не нужно реализовывать самостоятельно, их собрали в базовые библиотеки языков и протестировали, подключаем нужное и пользуем.
Алексей Черемисин, круто спасибо огромное! Мне походу этого не хватает ну и архитектуры. Если у меня 9 классов образования и с математикой всё плохо я смогу понять о чём пишет Дональд Кнут? Или с математикой это никак не связано? Я двигаюсь по этому скрину. Извиняюсь если Вас отвлекаю
Speakermen, касательно рисунка, не всегда есть объектный подход к программированию, есть еще и процедурный, а еще и функциональный, а еще и событийный, и смесь всех сразу или понемногу :)
Конечно же объектный сейчас превалирует, но нужно помнить, ядро линукса да и большинство юниксов написано в процедурном стиле.
Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс
Убеждения Торвальдса изначально неверные. Его учения основываются на том, что код надо писать для машины а не для людей. Хотя, сам любит писать на Си а не языках ассемблера изначально. Если бы он следовал своим убеждениям, то всё писал бы на языках ассемблера. Чего же он выбрал ЧПЯ и агитрирует смотреть не на удобство чтения кода, а в сторону оптимизации. То что он имел ввиду мало кого по сути интересует, потому что он сам не понимает что он порой имеет ввиду. Но иногда для когото он конечно же объект для изучения, или у некоторых идол что ещё хуже.
Плохие программисты думают о коде. Хорошие программисты думают о структурах данных и их взаимосвязях», — Линус Торвальдс
Он имел ввиду, что хорошие программисты думают над архитектурой программы, как в ней все будет взаимосвязано. От архитектуры критично зависит, как эта программа будет работать в целом, масштабироваться, поддерживаться, сочетаться с другими частями.
В общем архитектурный взгляд отличает хорошего программиста от плохого, опытного от неопытного.