Публикации по теме 'software-craftsmanship'


Не будьте анти-негативом
Отрицательные условные обозначения в блоках кода в большинстве случаев сложны для чтения и понятия . Становится хуже, когда вы делаете условные предложения антиотрицательными. До Попробуйте прочитать приведенные выше фрагменты кода и попытаться понять его. Обратите внимание на выделенные части. Этот код читается как Когда инверсия пакета не повреждена, выдается сообщение об ошибке: «Пакет поврежден». Если инверсия пакета не пуста, сообщите о другой ошибке:..

Конфигурация приручения в C #
Эта проблема У нас есть много кода C #, который хочет получить доступ к какой-то конфигурации, и все это делается с помощью: ConfigurationManager.AppSettings["SomeSettingOrOther"] Например, у нас был класс CurrencyConversion со следующим кодом. public class CurrencyConversion { Currency GetDefaultCurrency() { // get the config setting string configCurrency = ConfigurationManager.AppSettings["MarketCurrency"]; // return the equivalent Enum..

Восстановление программного обеспечения
Я сам являюсь поклонником мастерства разработки программного обеспечения и прочитал множество его определений. Будь то работы таких профессионалов, как Роберт С. Мартин (дядя Боб), Сандро Манкузо, или даже сотрудников и руководителей моей собственной организации. И хотя мы гордимся тем, что поддерживаем и развиваем культуру мастерства, как и любую другую культуру, она тоже должна развиваться как в своих темах, так и в форме. Иногда одни и те же старые метафоры и фразы могут превратиться в..

Не добавляйте ненужный контекст
Речь идет о классе, в котором есть поля и методы, имя которых повторяет имя класса. См. приведенную ниже диаграмму класса для ученика. Глядя на диаграмму класса, становится ясно, что весь этот класс посвящен ученику. Однако, как вы думаете, действительно ли добавление слова «Студент» в поля и методы приносит пользу? Вам не кажется это излишним? Это больше похоже на У ученика есть имя ученика. У студента есть дата рождения студента. Получить студенческий возраст студента...

Ввести объясняющую переменную
Занимаясь парным программированием с разработчиками, я заметил, что некоторые из них не решаются вводить объясняющую переменную . Они больше беспокоятся о том, что другие разработчики думают об этой дополнительной переменной. Не будет ли лишним иметь дополнительную переменную? Что ж, посмотрим: До В приведенном выше фрагменте кода (…даже несмотря на то, что он простой) сравнение размера файла с произвольным числом не дает четкого представления о каком-либо бизнес-правиле. Вы..

Будьте декларативными везде, где это возможно
Раздел Императивное программирование » фокусируется на описании как работает программа. Возьмем пример приведенной ниже функции isPresent . Конечно, он ищет число (поисковое слово) в массиве чисел и отвечает true или false. Если вы внимательно наблюдаете, он фокусируется на том, как ищется номер. Он повторяет каждое число одно за другим в массиве чисел и проверяет, выполняются ли критерии ( часть HOW: for/if ). В конце концов, он сообщает вам, присутствует ли число в..