Оригинальный текст этой статьи здесь (Mind pro's .com/just gloss/UN...
После прочтения хочу сказать-
Что такое «креативность»?
Что "сумасшедший", то сумасшедший - со спокойным и утонченным неукротимым серьезным духом мало-помалу толкают вас на грань краха.
Кроме того, друзья программ обслуживания, вы мертвы! !
Если архитекторы строят дома, как программисты пишут программы, то первый прилетевший дятел может разрушить нашу цивилизацию.
наименование программы
- легко набираемое имя. Например: Фред, asdf
- однобуквенное имя переменной. Например: a,b,c,x,y,z (если недостаточно, можно рассмотреть a1,a2,a3,a4,….)
- Креативно исправляйте орфографические ошибки. Например: SetPintleOpening, SetPintalClosing. Это может затруднить поиск кода.
- Аннотация. Например: ProcessData, DoIt, GetData… настолько абстрактно, что ничего не сказать.
- сокращение. Например: WTF, RTFSC... (Также хорошо использовать аббревиатуры пиньинь, такие как: BT, TMD, TJJTDS)
- случайные заглавные буквы. Например: GEtnuMbER..
- повторное использование имен. Использование одного и того же имени переменной во встроенном блоке операторов творит чудеса.
- использовать буквы с ударением. Например: int int (второй int не является int)
- использовать подчеркивание. Например:_, __, ___.
- использовать другой язык. Например, смешайте английский, немецкий или китайский пиньинь.
- использовать имена персонажей. Например: косая черта, звездочка, запятая…
- использовать неуместные слова. Например: бог, супермен, iloveu….
- Спутать л и 1. Буква l и цифра 1 иногда невидимы.
камуфляжное мошенничество
- Переплетайте комментарии и код.
for(j=0; j<array_len; j+ =8)
{
total += array[j+0 ];
total += array[j+1 ];
total += array[j+2 ]; /* Main body of
total += array[j+3]; * loop is unrolled
total += array[j+4]; * for greater speed.
total += array[j+5]; */
total += array[j+6 ];
total += array[j+7 ];
}
- Код и отображение несовместимы. Например, ваш интерфейс показывает, что он называется почтовым индексом, но на самом деле этот код называется zipcode.
- скрыть глобальные переменные. Передача глобальной переменной в функцию в качестве параметра функции создает впечатление, что переменная не является глобальной переменной.
- Используйте похожие имена переменных. Например: похожие слова, пловец и пловец, похожие буквы: ilI1| или oO08. parsent и parseInt, D0Calc и DOCalc. И этот набор: xy_Z, xy__z, _xy_z, _xyz, XY_Z, xY_z, Xy_z.
- перегруженная функция. Используется то же имя функции, но ее функция совершенно не связана с ее конкретной реализацией.
- перегрузка оператора. Перегрузка операторов может сделать ваш код странным благодаря CCTV, благодаря C++. Это то, что может возвысить беспорядочный код до уровня искусства. Например: перегрузка оператора ! класса, но фактическая функция не является отрицанием, поэтому она возвращает целое число. Итак, если вы используете оператор !!, то происходит кое-что интересное — сначала вызывается перегруженный оператор !, а затем возвращаемое им целое число передается ! в логическую переменную, а если это !!!? хе-хе.
Документация и примечания
- лежать в нотах. Вам не обязательно лгать, просто не обновляйте комментарии при изменении кода.
- бред в комментариях. Например: /* добавить 1 к i */
- Просто комментируйте что, а не почему.
- Не комментируйте секреты. Если вы разрабатываете систему полетов, вы должны следить за тем, чтобы каждый раз, когда добавляется новый полет, вам приходилось изменять программу более чем для 25 мест. Никогда не указывайте это в документации.
- Внимание к детали. При разработке очень сложного алгоритма необходимо прописывать все детализацию.На 100 страницах не остановиться.Абзацы должны быть не менее 5 уровней,а номеров абзацев должно быть больше 500,например: 1.2. 4.6 .3.13 — Показать все последствия для действий, к которым могут применяться выбранные меры (короткий псевдокод опущен).Таким образом, когда вы пишете код, вы можете привести его в соответствие с документацией, например: Act1_2_4_6_3_13() Никогда не комментируйте единицы измерения. Например, время указывается в секундах или миллисекундах, размер — в пикселях или дюймах, а размер — в МБ или КБ. и Т. Д. Кроме того, в своем коде вы можете смешивать разные метрические единицы, но не комментировать.
- Попался. ловушкаи никогда не комментируйте ловушки в коде.
- Выражайте свое недовольство в комментариях и документации.
программирование
- Java Casts. Приведение типов в Java — это находка. Каждый раз, когда вы получаете объект из коллекции, вам необходимо привести его к исходному типу. Следовательно, эти операции преобразования будут появляться во многих местах. Если вы измените тип, вы не обязательно сможете измениться везде. Компилятор может или не может обнаружить это.
- Использование избыточности Java. Например: Bubblegum b = new Bubblegom(); и swimmer = swimner + 1; обратите внимание на тонкие различия между переменными.
- никогда не проверяй. Никогда не проверяйте входные данные, никогда не проверяйте возвращаемое значение функции. Это покажет всем, насколько вы доверяете оборудованию компании и другим программистам.
- не инкапсулировать. Звонящий должен знать все детали звонка.
- клонировать и копировать. Для эффективности вы должны научиться использовать копирование + вставку. Вам вряд ли понадобится понимать код других людей, чтобы программировать эффективно.
- огромный слушатель. Напишите слушатель, а затем позвольте всем вашим классам кнопок использовать этот слушатель, чтобы вы могли делать много операторов if...else... в этом слушателе, что довольно интересно.
- Используйте 3D-массивы. Если вам кажется, что 3D недостаточно, вы можете попробовать 4D.
- смешанное использование. Оба используют методы get/set класса и напрямую обращаются к этой общедоступной переменной. Преимущество этого в том, что это может сильно расстроить сопровождающих.
- упаковка, упаковка, упаковка. Оберните все свои API от 6 до 8 раз, до 4 слоев в глубину. Затем оберните аналогичный функционал.
- не секрет. Объявите всех членов как общедоступных. Таким образом, вам будет трудно ограничить его использование в будущем, и это может привести к большей связи с другим кодом, что может увеличить срок службы вашего кода.
- Устроить и помешать. Измените drawRectangle(height, width) на drawRectangle(width, height), а затем измените его обратно после выпуска нескольких версий. Программисты, которые поддерживают программу, быстро не понимают, кто из них прав.
- изменить переменную на имя. Например, измените setAlignment(intalignment) на setLeftAlignment, setRightAlignment, setCenterAlignment.
- сохраните все свои неиспользуемые и устаревшие переменные, методы и код.
- Окончательный класс всех ваших дочерних узлов, так что, когда вы закончите проект, никто не сможет расширить ваш класс путем наследования. Разве это не то же самое для java.lang.String?
- избегайте использования макета. Это позволяет нам использовать только абсолютные координаты. Если ваш босс заставляет вас использовать макет, вы можете рассмотреть возможность использования GridBagLayout, а затем жестко закодировать координаты сетки.
- переменная среды. Если ваш код должен использовать переменные среды. Ну, вы должны использовать переменные среды для инициализации членов вашего класса, а не конструкторов.
- Используйте глобальные переменные. 1) Вынести инициализацию глобальной переменной в другую функцию, даже если эта функция не имеет ничего общего с переменной, чтобы наши сопровождающие могли действовать как детективы. 2) Использование глобальных переменных может уменьшить параметры вашей функции.
- конфигурационный файл. Файл конфигурации в основном используется для инициализации некоторых параметров. В программировании мы можем сделать имена параметров в файле конфигурации отличными от имен в реальной программе.
- раздуть свой класс. Сделайте так, чтобы в ваших классах было как можно больше раздутых и непонятных методов. Например, ваш класс реализует только одну возможность, но вы хотите предоставить методы для всех возможностей. Не определяйте другие классы, поместите всю функциональность в один класс.
- Используйте подклассы. Ориентация на объекты — это находка для написания неподдерживаемого кода. Если у вас есть класс с десятью элементами (переменными и методами), вы можете написать 10 уровней наследования, а затем поместить десять свойств на каждый из этих десяти уровней. Если возможно, поместите десять классов в десять разных файлов.
- загромождать свой кодИспользуйте XML. Сила XML не имеет себе равных. Используя XML, вы можете превратить 10 строк кода в 100 строк кода. Кроме того, заставьте других также иметь XML. (Видите, верьте в XML для вечной жизни, верьте в XML для уверенности в себе)
- Разложить условные выражения. Например: разложить a==100 на a>99 && a
- научиться пользоваться точкой с запятой. Например: если (а); иначе;{ int d; d = c;}
- косвенное преобразование. Например: чтобы преобразовать double в строку, напишите new Double(d).toString() вместо Double.toString(d)
- интенсивное использование вложенности. Программист NB может использовать более 10 уровней скобок ( ) в строке кода или использовать более 20 уровней вложенности операторов {} в функцию и превратить вложенный if else в [? :] Очень NB вещь.
- длинные строки кода. Чем длиннее строка кода, тем лучше. Так что другим нужно идти вперед и назад при чтении
- Не возвращайтесь раньше времени. Не используйте break, вам нужно как минимум 5 слоев if-else для обработки ошибок.
- Не используй{}. Не используйте {} в if else, особенно когда вы интенсивно используете вложенность if-else, когда вы даже можете делать отступы в своем коде случайным образом, что делает его ловушкой даже для самых опытных программистов.
- тривиальная инкапсуляция. Сравнивая инкапсуляцию логического класса, все в классе является логическим.
-
цикл. Никогда не используйте for(int i=0; i
контрольная работа
- никогда не тестировать. Никогда не проверяйте никакую обработку ошибок и никогда не проверяйте возвращаемое значение системного вызова.
- Никогда не проводите тестирование производительности. Если это недостаточно быстро, попросите пользователя переключиться на более быструю машину. Если вы делаете тест, то вам, возможно, придется изменить свой алгоритм или даже перепроектировать, перестроить архитектуру.
- Не пишите тест-кейсы. Не тестируйте покрытие кода, автоматизируйте тестирование.
- Тестирование трусливо. Отважному программисту этот шаг вообще не нужен. Слишком многие программы слишком боятся своего начальства, боятся потерять работу, боятся жалоб пользователей или даже судебных исков. Этот страх напрямую влияет на продуктивность. Если вы твердо уверены в своем коде, зачем его тестировать? Настоящим программистам не нужно тестировать свой код.
разное
- твой босс знает все. Независимо от того, насколько SB ваш босс, вы будете делать именно то, что он говорит, поэтому вы узнаете больше и узнаете, как писать менее удобный для сопровождения код.
- Подорвите службу поддержки. Вы хотите убедиться, что ваша ошибочная программа никогда не станет известна обслуживающей команде. Когда пользователи звонят и пишут вам, вы игнорируете их, и даже если вы это делаете, стандартным ответом является просьба пользователей переделать систему или сообщить пользователям, что с их учетной записью возникла проблема.
- Молчи. Для некоторых больших ошибок, таких как y2k, вы должны научиться держать язык за зубами и никому не рассказывать, включая своих родственников и друзей, а также коллег по компании и руководство, чтобы, когда придет день, вы могли использовать эту ошибку для Зарабатывать.
- дурак. Вы научитесь дурить, даже если ваш код написан плохо, вы должны пометить его шаблоном проектирования GoF, и даже если ваш проект сделан плохо, вы должны пометить его agile, чтобы вся команда могла и компании , и даже индустрия в целом становятся беспокойными, так что это действительно может проложить путь для неподдерживаемого кода.
В этом документе есть еще много, много других. TMD действительно мощная. Давайте пойдем и посмотрим сами. Друзья, обладающие энергией и способностями, возможно, пожелают перевести его на китайский язык.
Одним словом, наш лозунг -Write Everywhere, Read Nowhere
(Конец полного текста)