Как мне увеличить мой код
навыки понимания / чтения?
Читать читать читать. Учись на своих ошибках. Просмотрите ответы на SO и в других местах. Когда вы можете вспомнить кусок кода, который вы написали, и говорите: «Ага! Я должен был вместо этого сделать xyz!» тогда ты учишься. Прочитайте хорошую книгу на своем языке, выйдите за рамки основ и поймите более продвинутые концепции.
Тогда, кроме чтения: пиши пиши пиши! Кодирование похоже на математику: вы не сможете полностью справиться с этим без фактического решения проблем. Взгляд на решение математической задачи отличается от того, чтобы достать чистый лист бумаги и решить его самостоятельно.
Если вы можете, запрограммируйте парное программирование, чтобы увидеть, как другие программируют и обмениваются идеями.
Также это улучшит качество кода
Я напишу?
Смотри выше. По мере продвижения вы должны стать более эффективными. Этого не произойдет, прочитав книгу о шаблонах проектирования. Это произойдет путем решения реальных проблем и понимания того, почему то, что вы читаете, работает.
Есть ли лучшая запись кода, чем
Венгерский?
Это зависит. Обычно я избегаю их и использую описательные имена. Единственное исключение, в котором я могу использовать нотации венгерского типа, относится к элементам пользовательского интерфейса, таким как элементы управления Windows Forms или ASP.NET, например: использование btn в качестве префикса для кнопки «Отправить» ( btnSubmit ), txt для TextBox ( txtFirstName ) и т. Д., Но оно отличается от проекта к проекту в зависимости от подхода и используемых шаблонов.
Что касается элементов пользовательского интерфейса, некоторые люди предпочитают хранить элементы в алфавитном порядке и могут добавлять тип элемента управления в конце, поэтому предыдущие примеры становятся submitButton и firstNameTextBox соответственно. В Windows Forms многие люди называют формы как frmMain, который является венгерским, в то время как другие предпочитают называть его на основе имени приложения или цели формы, такой как MainForm, ReportForm и т. Д.
РЕДАКТИРОВАТЬ: не забудьте проверить разницу между Apps Hungarian и Systems Hungarian , как упомянуто @Tobias Langner в комментарии к предыдущему ответу.
Pascal Case обычно используется для имен методов, классов и свойств, где первая буква каждого слова пишется с большой буквы. Для локальных переменных обычно используется Camel Case, где первая буква первого слова строчная, а у последующих слов первые буквы заглавные.
Соглашения об именах и многое другое можно найти в Руководстве по проектированию .NET Framework. Существует книга , а некоторые из них на MSDN .
И есть ли действительно хорошие книги для
Шаблоны проектирования C ++ (или язык
не имеет значения?)?
Шаблоны проектирования должны быть применимы к любому языку. Как только вы поймете концепцию и обоснование полезности этого шаблона, вы сможете применить его на своем языке. Конечно, не подходите ко всему с позиции «написано в камне»; цель - шаблон, реализация может незначительно отличаться для разных языков в зависимости от доступных вам языковых функций. Взять, к примеру, шаблон Decorator и посмотреть, как методы расширения C # позволяют реализовать его иначе, чем без него .
Дизайн шаблона книги:
Head First Design Patterns - хорошее введение для начинающих, использующее Java, но код доступен для C ++ и C # для загрузки (см. Раздел «Код книги и загрузки» на сайте книги )
Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения - классическая банда из четырех человек (GOF)
Шаблоны архитектуры корпоративных приложений - Мартин Фаулер
Если вы ищете лучшие практики для качественного кодирования в C ++ и C #, тогда ищите книги « Effective C ++ » и « More Effective C ++ » (Скотт Мейерс) и книги " Effective C # " и " More Effective C # " (Билл Вагнер). Они не будут держать вас за руку, поэтому вы должны понимать язык в целом. В серии «Эффективно» есть и другие книги, поэтому обязательно посмотрите, что доступно для ваших языков.
Я уверен, что вы можете выполнить поиск других рекомендуемых книг, поэтому я остановлюсь здесь.
РЕДАКТИРОВАТЬ: добавил больше деталей в вопросе венгерской нотации.