Подтвердить что ты не робот

Лучший способ узнать лучшие практики .NET/OOP?

Я относительно новичок в .NET-программировании (и OOP в целом), и я хочу убедиться, что не разрабатываю плохие привычки начинающих при разработке своих приложений.

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

Я слушал Polymorphic Podcast в последнее время, и, слушая обсуждение лучших практик, полезно, я нахожу отсутствие скринкастов и примеров кода, направленных на ознакомление с этими лучшими практиками.

4b9b3361

Ответ 1

Существуют две отдельные, хотя и связанные цели:

  • Чтобы быть хорошим разработчиком OO

и

  • Быть хорошим .NET Developer

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

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

Затем узнайте, что вам нужно будет много читать, как в Интернете, так и вне. Если скорость чтения средняя или ниже (около 250 слов в минуту или меньше), то вам следует рассмотреть возможность участия в учебном курсе по методам чтения. Я проделал курс с Write Group (Новая Зеландия) и утроил скорость чтения.

В терминах книг Object Thinking из Microsoft Press будет хорошей отправной точкой; Я бы следил за этим с Программирование компонентов .NET (Juval Lowy) и Шаблоны оптимальной практики Smalltalk (Kent Beck), затем Прагматический программист (Hunt and Thomas).

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

Ответ 2

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

Тогда я бы рекомендовал, чтобы они прочитали следующее:

Это должно дать кому-то достаточно прочную основу в лучших методах ООП.

Ответ 3

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

План эпизода выглядит примерно так:

  • Обзор гибких ценностей и практик.
  • Основные принципы проектирования OO
  • Шаблоны проектирования в действии
  • Основы тестирования модулей
  • Mock Objects
  • TDD
  • Организация проекта/папка
  • Основы управления версиями
  • Непрерывная интеграция/автоматизация сборки
  • Гибкие принципы планирования проектов
  • Обзор основных концепций дизайна, управляемых доменом

Автор серии также сделал серию Summer of NHibernate, которая была довольно популярна.

В дополнение к этому, dnr-tv Жан-Поль Boodhoo сделал пять эпизодов по шаблонам проектирования и два по разработке, основанному на тестах, я рекомендовал бы взглянуть на них также.

Ответ 4

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

Из-за этого я бы рекомендовал чтение, но когда вы садитесь на код, начните работать с NUnit и практикуйте TDD (или BDD и т.д.). Это поможет вам сделать две вещи.

  • Это даст вам возможность отделить ваши классы. Трудно действительно проверить код со многими зависимостями. Если вы хотите действительно войти туда и написать тесты, вам нужно будет отделить. Это хорошее место, чтобы начать применять все рекомендованные показания.:)

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

Ответ 5

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

Мой совет, основанный на моем собственном опыте, заключается в том, чтобы не слишком беспокоиться о том, что вы не следуете лучшим методам и просто пишете код. Если вы новичок в OOP или .NET, вы будете делать глупые вещи. Вы будете делать противоположное "передовым практикам", пока не получите достаточно ошибок, чтобы учиться у них.

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

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

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

  • Прочитайте другой код OOP.NET. открыто источник отлично подходит для этого! Изучите это, расширить его, добавить функции в OSS проект, даже если вы никогда не совершаете.

  • Прочитайте книги. Я имею в виду книги... не блоги. У книг больше комнату для расширения темы и лучше всего для людей, которые действительно начиная с нуля на данном тема. Я рекомендую Код Заполните как отличную первую книгу.

  • Прочитайте "сети. Это включает блоги, stackoverflow и т.д.

Удачи!

Ответ 6

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

Ответ 7

Кстати, я на полпути прочитал книгу VB.net(опубликованную Apress), которая довольно хороша.

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

И как сумасшедший, как кажется, мне гораздо лучше не сидеть за компьютером, изучая программирование! Я всегда читаю одну или две главы, затем заходим на свой компьютер и делаю это по-настоящему.

Ответ 8

Я помогаю другу, что именно в ситуации, о которой вы упоминаете. Он парень HW, который раньше работал с C.

Я думаю, что лучший подход - наставничество и кодирование. Я объясню ему несколько концепций, а затем попрошу его запрограммировать код. Мы просто построили простой калькулятор на нескольких платформах (WCF, Silverlight, XNA,..) и использовали некоторые известные шаблоны (состояние, MVP...).

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

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

ИМХО разделение проблем и модульное тестирование лучше объясняются и понимаются путем кодирования и необходимости реализации новых функций; специально для новых программистов. Когда он купит, я бы рекомендовал ему прочитать "" Шаблоны проектирования "по GOF или часть его более простые варианы.