Pull to refresh

Comments 32

Вы серьезно? Если бы хоть что-нибудь новое было в статье — было бы полезно, а так — это масло кажется уже десятки лет мажется и мажется. мажется и мажется.
Продолжение
мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. мажется и мажется. м
Да ладно вам, человек старался, переводил, а вы так на него нападаете))
Меня вот позабавило. Особенно мне понравилось
const PI = 3.14 // Число Пи, округлённое до двух знаков после запятой
Math.PI для слабаков, только свои константы, только хардкод!
На переводчика нападать обычно имеет смысл, только если есть косяки в переводе, это скорее крик души, нежели чем, реальная критика :)
А как насчёт JavaScript в заголовке? В оригинале его нет, и к содержанию он отношения не имеет никакого.
в образовании очень часто ответ может не совпадать если юзать константы или нечто подобное в предварительно не сокращенном виде как того требует задача. Навсегда это запомнил, когда прогорел на паре задач по физике в далеком 2011 году :)
UFO just landed and posted this here
Используйте понятные имена переменных и функций

function averageArray (array) {

Используйте максимально короткие и при этом максимально информативные имена.
function average(array)


Пишите хорошую документацию к своему коду

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

4. Подумайте об использований правил Сэнди Метц

Есть только 2 правила, которые работают всегда:
1. Код должен делать то, что должен.
2. Код не должен делать то, что не должен.
Все остальные правила применяемые в тупую, ничего кроме ущерба не приносят.

6. Помните о принципе DRY

Есть только один принцип: код должен работать. Если вы будете ему следовать, никто никогда не спросит, каким принципам и правилам вы следовали.

UFO just landed and posted this here
Это драйвер, то место где закапывают весь мусор, что бы код верхнего уровня можно было писать в более читабельном виде.
Можно ли сделать его более читабельным? Не всегда, есть сложная логика, которую нельзя сократить, не сократив функциональность. Примерно, как в математике, есть сложные формулы, которые можно сократить до более простых, но так же есть сложные формулы, которые нет. Так и здесь, есть сложный код, который возможно перекроить десятком способов, но сложность не исчезнет.
UFO just landed and posted this here
На ваш вкус. Вам нравится делать красивый читабельный код, никто вас за это не осудит. Вы не в состоянии писать читабельный код, но при этом он прекрасно работает, это плохо, но из двух зол я предпочитаю работающий код, красивому. В конце концов, работающий код можно отрефакторить и сделать красивым.
Цель, что бы код работал, все остальное средства достижения цели, как например читабельный код с большей вероятностью будет работать хорошо, но не это цель.
Под работал подразумевается, он делает то что надо и в нем есть ровно 0 багов.
UFO just landed and posted this here
Смешались в кучу пони, люди… По степени структурированности очень напоминает классификацию животных Борхеса.
Кстати, что из этих правил специфично именно для JS?
Мне одному кажется, что если убрать из названия Javascript, и написать там PHP, или C++, скажем — ничего не изменится? Это какие-то базовые гигиенические принципы работы с любым кодом.

Документировать нужно только если код делает чтото непонятное, страшное и неочевидное.

Документировать (в смысле JSDoc и т.п.) нужно всегда, когда есть время. То, что очевидно Вам после месяцев работы над проектом, может быть совершенно непонятно Вашему коллеге через год.

«Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте» ©

Все мы знаем последнюю цитату, но она к коментариям не относится. Опыт показывает что коментарии устаревают после первого же рефакторинга. Т.е. они не то что бесполезны, они вводят в заблуждение. Редко кто читая коментарий проверяет что делает функция.

Ну так и я не про комментарии, а про документацию в коде. То, из чего потом можно сделать swagger или wiki-странички с помощью различных инструментов. И как раз такие докстринги и позволяют поддерживать документацию актуальной.


Примеры:


  • Докстринги для типов и полей доменных объектов будут служить глоссарием для программного модуля. В противном случае это будет вынесено в какой-нибудь вордовский файл или wiki. И через несколько итераций полностью потеряет связь с реальностью.
  • Докстринги к экспортируемым функциям будут служить дополнительным описанием контракта модуля. Иначе, чтобы понять что делает модуль нам нужно либо прочитать его код, либо прочитать его юнит-тесты.
  • Из докстрингов к props для React-компонента можно слепить сайт с документацией и примерами использования.
По поводу описания типов в докстрингах, если есть время упариваться, то лучше всё-таки вместо это выбрать Flow или TypeScript — так актуальность типов будет лучше поддерживаться, да и получите хорошие инструменты статического анализа :)
Так я уже несколько лет так и делаю :)

Просто я искренне не понимаю, почему я должен держать в голове какие-то сложные особенности предметной области, если я могу вынести их в докстринги. Облегчив тем самым жизнь и моим коллегам, и себе в будущем. А кому не нравится — все нормальные IDE позволяют эти докстринги свернуть.
Методы и функции не должны быть длиннее 5 строк кода.

Да ладно вам, разве это возможно?)
Возможно, но я бы скорее назвал это методом обфускации.

Бывает, что code-style не приемлет египетских кавычек.


function someFunction(something)
{
    if(something)
    {
        handleOne();
    }
    else
    {
        handleTwo();
    }
}

Простейшая функция с if-else вышла в 11 строк :)

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

Хотя согласен, что 5 строк всё равно жесковато. Я лично для себя вывел следующие пороги:
а) ~10 sloc — стоит подумать о декомпозиции, вполне возможно, она тут уместна;
б) ~30 sloc — декомпозиция нужна с вероятностью 99%.
Мне кажется здесь имеются ввиду «информативные» строчки

Если задаться такой целью, то конечно можно писать методы в 5 строк. Вот только станет ли лучше: короче и понятнее. Вероятно нет.

Что-то не удалось найти на гитхабе автора никаких коммитов в реальный код сложных проектов, только блог и учебные материалы для студентов. Может не стоит все, что увидели, тащить на Хабр?
Первые 3-4 — это скорее антипаттерны даже.
// это мост.
Очень радует, что кто-то пишет статьи для людей с заторможенным умственным развитием. Им итак приходится тяжело по жизни им нужно помогать. Если хотя бы один аутист после этой статьи научится находить площадь круга, то это все не напрасно
У аутистов, как будто, с площадью круга проблем быть не должно.
Оформление кода это о том писать
myFunction (arg)

или
myFunction( arg )

а не о стиле программирования
Мне интересно, что должна возвращать функция average(), когда ей передали пустой массив.
Или просто падать с маловразумительным сообщением?
Sign up to leave a comment.