Каков список Шаблонов и Принципов, которые должен знать программист?

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

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

Языки программирования я продолжаю работать: C#, Ruby, JavaScript.

5
задан skaffman 22 January 2012 в 11:56
поделиться

7 ответов

Некоторые из наиболее независящих от языка навыков, которые я сейчас изучаю / над которыми работаю, чтобы улучшить кодирование в целом.

  • Написание чистого, читаемого и поддерживаемого кода
  • Рефакторинг
  • Правильный объектный дизайн для языков ООП
  • Правильное использование надлежащей системы управления версиями. Sourcesafe не в счет: D
  • Модульное тестирование и разработка через тестирование
  • Правильное применение шаблонов проектирования. Выучить их - это одно, а узнать, когда и где их применять, гораздо сложнее.

Некоторые ссылки на вопросы с рекомендациями по книгам @ SO:

И, конечно же, Книги по практическому программированию , как упоминалось в предыдущем комментарии.

3
ответ дан 18 December 2019 в 09:48
поделиться

В дополнение к написанию кода вы также должны попробовать прочитать код . Например, загрузите код из проектов с открытым исходным кодом, попробуйте повозиться с ним и понять, что он делает и почему. Или попробуйте просмотреть свой собственный код из предыдущего проекта. Что бы вы сейчас сделали по-другому? Можете ли вы все еще понять, почему вы построили его именно так?

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

0
ответ дан 18 December 2019 в 09:48
поделиться

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

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

8
ответ дан 18 December 2019 в 09:48
поделиться

Я бы начал с принципов, а паттерны - на втором месте.

Принципов: существует целый ряд принципов, но я получаю практический опыт от них:

Многие из них (когда сгруппированы вместе) известны как SOLID (объектно-ориентированный дизайн).

Шаблоны:

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

И последнее, что следует иметь в виду, это то, что существует три основных типа шаблонов (плюс четвертая категория для многопоточности / параллелизма); может помочь просто знать об этих категориях и учитывать их, когда вы что-то делаете, это:

  • Творческие
  • Структурные
  • Поведенческие
3
ответ дан 18 December 2019 в 09:48
поделиться

Я думаю, что лучший способ - выучить много языков. LISP, Scheme, Python, Smalltalk, Erlang, Prolog, Eiffel и многие другие

И строить вещи с их помощью.

1
ответ дан 18 December 2019 в 09:48
поделиться

Мартин Фаулер Шаблоны архитектуры корпоративных приложений для создания общего словаря с другими разработчиками (например, репозиторий, Active Record, модель предметной области, единица работы).

Javascript Дугласа Крокфорда: полезные части , чтобы на самом деле понять, как работает Javascript.

И я бы очень рекомендовал заняться TDD (разработка через тестирование). Есть куча хороших книг по TDD, но если вы занимаетесь разработкой на старых объектах (а это большинство из нас), то я бы действительно порекомендовал Майкла Фезера Эффективная работа с устаревшим кодом .

И, наконец, книга, которая показывает, насколько может быть отредактирован и чистый код: Чистый код дяди Боба .

0
ответ дан 18 December 2019 в 09:48
поделиться

Владение инструментами (например, парадигмами программирования, паттернами, контролем исходных текстов, модульными тестами...) необходимо, но этого недостаточно, чтобы называть себя "профессионалом": ИМХО, признаком действительно профессионального программиста является способность понять, что нужно его клиенту. К сожалению, таким знаниям очень трудно научиться по книге.

2
ответ дан 18 December 2019 в 09:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: