Size: a a a

JavaScript — русскоговорящее сообщество

2020 March 30

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
Baxxter
с перерывом в год в любом случае придется погружаться в специфику и доменную область, заново читать код, типы тут вообще мало решают, только контракты гарантируют разве что
мне кажется, что гарантия контракта - это очень много
источник

B

Baxxter in JavaScript — русскоговорящее сообщество
Yuri Katkov
мне кажется, что гарантия контракта - это очень много
у всего есть цена и не все так однозначно, как может показаться
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
ты прикинь: смотришь на функцию и точно понимаешь, что она вернет, и что ей надо на вход
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
а код функции - просто свернут в редакторе
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Baxxter
с перерывом в год в любом случае придется погружаться в специфику и доменную область, заново читать код, типы тут вообще мало решают, только контракты гарантируют разве что
а оно тебе надо? ты ведь ушел из проекта! тебе за это будут платить снова?
источник

🦜

🦜 in JavaScript — русскоговорящее сообщество
Yuri Katkov
вот я чего не понимаю. Вот есть у меня функция, ожидающая объект какой-нить такой структуры:

export interface ChFiche {
 id?: string;
 title?: TranslatedString;
 description?: TranslatedString;
 occupations: Occupation[];
 competences: Competence[];
 prerequisiteIds: string[];
 softskillIds: string[];
 workEnvironmentIds: string[];
}

function transformFiche(fiche: ChFiche){}


Как без  тайпскрипта или JSDoc’овых костылей хоть как-то понять, что эта функция ждет на вход?
вызвать подсказку в шторме
источник

E

Evgeniy 🍀 in JavaScript — русскоговорящее сообщество
Yuri Katkov
вот и интересно, как они умудряются выживать. Все шибко умные и не ошибаются? Мирятся с багами? 100% тест-коверадж? еще что-то?
Только два вариант: либо пишут поддерживаемый и нормальный код, либо постоянно ковыряются в лапше.
Типы ничего не решают. Лапшу можно и на тс написать, как и чистый код на ваниле
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
Evgeniy 🍀
Только два вариант: либо пишут поддерживаемый и нормальный код, либо постоянно ковыряются в лапше.
Типы ничего не решают. Лапшу можно и на тс написать, как и чистый код на ваниле
можно написать чистый код на ваниле без jsdoc’овых типов?
источник

E

Evgeniy 🍀 in JavaScript — русскоговорящее сообщество
Yuri Katkov
можно написать чистый код на ваниле без jsdoc’овых типов?
конечно, а разве есть сомнения?
Сколько больших проектов написано на JS (дохера), и сколько из них покрыты типами (крайне немного)?
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
Yuri Katkov
а уж особенно, если помимо ChFiche (внутреннее представление fiche в программе) есть еще ChFicheDto (то, что дает сервер на запрос find, некоторые поля в нем отсутствуют), CreateChFicheDto (объект для создания fiche, в нем отсутствует id). Все немножко друг от друга отличаются - где-то есть поля, где-то нет, где-то внутри массивы id-шников прилинкованных объектов, а где-то сами прилинкованные объекты.
ну вот пример. Я в тупике, как тут без хотя бы jsdoc’а
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
при этом пример не какой-то особенный, в большинстве CRUD’ов будет такая же беда
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Yuri Katkov
вот и интересно, как они умудряются выживать. Все шибко умные и не ошибаются? Мирятся с багами? 100% тест-коверадж? еще что-то?
> Все шибко умные и не ошибаются?
нет
> Мирятся с багами?
да.. и фиксятся по мере появления буфера в спринте
> 100% тест-коверадж?
нет.. у нас он ниже 0.6%
> еще что-то?
писать нормальный читабельный код и писать комментарии почему оно так работает. особенно в частях которые ты сам не понимаешь (или не смодешь понимать через неделю, если забыть про этот участок кода,,,, на такой вариант надо смотреть всегда, когда пишешь код)


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

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Yuri Katkov
можно написать чистый код на ваниле без jsdoc’овых типов?
причем тут чистый код и jsDoc? это разные вещи
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
у меня вот к комментариям такие же претензии как у Роберта Мартина
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
который Clean Code
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
если ты написал комментарий, скорее всего, что-то не так, тебе срочно надо сделать этот комментарий ненужным
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
скорее всего - что-то переименовать или где-то ввести дополнительных функций
источник

C☭

Chadwick ☭ in JavaScript — русскоговорящее сообщество
Yuri Katkov
если ты написал комментарий, скорее всего, что-то не так, тебе срочно надо сделать этот комментарий ненужным
в 99,9% случаев - ошибочное решение!
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
ну вот гляди. Комментарий - это всего лишь текст, и когда ты его пишешь, у тебя вместо одного места, в котором описана логика (в КОДЕ) появляется два места (в коде и в комментарии). Через полгодика развития проекта комментарий начинает врать - потому что код поменяли, а комментарий - забыли/забили/не поняли/не посчитали нужным поменять.
источник

YK

Yuri Katkov in JavaScript — русскоговорящее сообщество
да собственно, что я распинаюсь, Clean Code, глава 4
источник