@react_js

Страница 164 из 5115
Denis
05.06.2016
13:18:07
Я слышал, что в Telegram одни олимпиадники и пишут сложно, но тут вроде ок)

Aleh
05.06.2016
13:18:34
так webogram неофициальный же, не?

или уже официальный?

Google
Aleh
05.06.2016
13:22:13
к коду надо спеку писать, а не комментарии -_-

localvoid
05.06.2016
13:22:34
типичный вебдев

Aleh
05.06.2016
13:25:38
а, ну размещено на telegram.org, значит официальный)

Denis
05.06.2016
13:25:54
ни одного комментария, отличный код!
Большинство комментариев, что я видел, только мешают)

localvoid
05.06.2016
13:26:20
Большинство комментариев, что я видел, только мешают)
видимо читать приходилось только свой собственный код?

Denis
05.06.2016
13:26:53
Нет конечно же :)

Дело в том, что у большинства программистов не очень хорошо получается писать понятный текст. Поэтому то, что называется "самодокументируемый" код чаще всего лучше работает. Опять же, README и базовые вещи описанные отдельно всё равно необходимо, особенно для ввода в проект.

Alexey
05.06.2016
13:30:31
отсутствие доков в слаботиповом языке

Alexey
05.06.2016
13:30:43
такая себе история

Denis
05.06.2016
13:31:23
Если мы возмём React, важность типов переоценена. Разве propTypes не являются спекой?

Aleh
05.06.2016
13:31:41
@DenisIzmaylov под спекой я подразумеваю unit-test

в форме спеки )

Google
Denis
05.06.2016
13:32:13
А вот это да. Но тут схожая проблема - кейсы для тестирования. Можно сделать юнит-тест, в котором проверяется соответствие render заданному HTML и всё.

Coverage конечно решит отчасти)

Но не гарантирует все кейсы

Кто-то недавно писал статью, что тестирования нужно всегда с рандомными данными, иначе смысл тестов теряется

Образно говоря, brute force на поиск ошибки )

Aleh
05.06.2016
13:35:05
ну, вот что у нас в команде стараемся использовать(кроме попыток к tdd, но не всегда получается и не всегда нужно). Если вдруг ты захотел к своему коду написать комментарий или к старому коду, вынеси это в спеку и покрой тестом(а потом как у Фаулера написано, пробуй рефакторить). Плюс таких описательных спек в том, что они напоминают о себе, в отличие от простых комментов

Alexey
05.06.2016
13:36:04
от БЭМа даже в Яндексе на react-redux проекте отказались) он не очень вписывается
На самом деле там с бэм-стека перешили на реакт-редакс (в одной команде). Но тенденция к смене стека есть

Правда от методологии БЭМ никто не отказывается

Denis
05.06.2016
13:38:08
Aleh
05.06.2016
13:38:35
Gordey банальный it throws exception if first arg less than second

"Пишем тесты для тестов"?)
не знаю кто как, но у нас тесты для проектирования внешнего api разрабатываемых компонент, для возможности refactoring'a

@DenisIzmaylov да и в тестах же не всегда надо сравнить вход-выход. Например, во фронте да и вообще мало где принято использовать мутационное тестирование. Да что уж там, 100% покрытие мало где нужно, откровенно говоря, потому что цена ошибки у нас гораздо меньше, заплатку можно вылить в течение 5 минут, а то и меньше. Вот электронщикам надо загоняться, потому что отозвать платы на миллионы долларов не покатит, а мы, если затянем разработку на 10 и более % по времени просто потратим деньги бизнеса, хотя теже ошибки могли найти гораздо дешевле

Denis
05.06.2016
13:47:13
не знаю кто как, но у нас тесты для проектирования внешнего api разрабатываемых компонент, для возможности refactoring'a
Вот это хорошо, да. Но мы дискуссию начали именно с того, что комментарии внутри кода не являются панацеей.

Aleh
05.06.2016
13:47:14
тут конечно я не спорю, что есть сферы, где нужно сделать полную верификацию, но это гораздо более редкий случай для нашей области

Denis
05.06.2016
13:48:33
Конечно, я же в пример привёл именно код внутреннего модуля, как пример неплохого самодокументируемого кода по бизнес-логике, а не стэк интеграции :)

Aleh
05.06.2016
13:48:50
процесс проектирования внешнего(для юнита) api: 1. создаем файл спеки 2. пишем хочу чтобы оно делал так 3. имплементим 4. хочу, чтобы оно еще делало так, если было изначально вот так 5. имплементим

и т.д.

Google
Aleh
05.06.2016
13:49:44
вот эти 2 и 4 явно описываются в тесте и самим тестом, поэтому получается, что и комментарий не нужен

ну при этом все советы из clean code и всего такого

Denis
05.06.2016
13:50:18
А что за clean code? Какие советы?

Aleh
05.06.2016
13:50:44
ну я про книжку

дяди Боба)

Gordey
05.06.2016
13:53:20
старина Мартин

Aleh
05.06.2016
13:54:07
вообще, опять же, все зависит от задач, которые возлагаются на тесты

у нас - документирование кода + проверка внешнего api, помогает не писать комменты и спокойно рефакторить в будущем

я может не полностью доступно объяснил, чего я придерживаюсь: против комментов разбросанных по коду, за самодокументируемый код, за тесты, описывающие покрываемые кейсы :)

Alexey
05.06.2016
14:16:42
Согласен, комменты в коде неочень хорошо.

Dmitry
05.06.2016
14:29:38
Можете подсказать, как бы вы лучше всего организовали апдейт локального стейта компонента при изменении пропсов, если при этом нужно смотреть на рефы и в componentWillReceiveProps их в этот момент еще нет ( рендерятся после получения тех пропсов )

Dmitry
05.06.2016
14:29:40
?

Vladimir
05.06.2016
14:59:46
звучит странно, честно говоря.

а что надо смотреть в рефах?

Dmitry
05.06.2016
15:03:27
размеры элементов, мне при запросе приходит несколько сущностей и нужно их все нарисовать, чтобы при этом на экране было видно изначально только первую, а до остальных можно было доскролить

Vladimir
05.06.2016
15:05:01
я бы сделал так. каждый реф - это компонент, который умеет сообщать о своем ресайзе через коллбек. родительский элемент хранит это значение в стейте и в лайфцайкл методах работает со стейтом

ну либо <img ref={c=>this.imageMounted(c)}/>

Dmitry
05.06.2016
15:06:43
Поковыряю, спасибо

Aleksey
05.06.2016
17:34:25
Согласен, комменты в коде неочень хорошо.
Что значит не хорошо? Комментировать надо свои мысли и почему ты сделал так, а не иначе, чтобы потом не гадать.

Google
Aleksey
05.06.2016
17:37:17
Я заебался уже переписывать очевидные места,а потом наступать на грабли из-за за того что нельзя было так писать по причинам которые я не зафиксировал.

Aleh
05.06.2016
17:37:39
внезапно для этого тесты, а не коменты

Aleksey
05.06.2016
17:37:55
внезапно для этого тесты, а не коменты
Внезапно, я не про логику.

Я за тесты, но ими не покажешь всего.

Aleh
05.06.2016
17:38:28
например?

Admin
ERROR: S client not available

Aleksey
05.06.2016
17:40:31
Например либу которую ты используешь с багом, есть ишью который вот вот решится, ты делаешь заплатку, пишешь // TODO: пока вот так, см. сюда: https://github...

Aleh
05.06.2016
17:40:50
ну, и в чем проблема покрыть это в тесте?

я серьезно, ровно тоже самое, но не в комменте, а в спеке+проверили, что этот баг мы правильно хендлим

при рефакторинге это еще и проверится

Aleksey
05.06.2016
17:48:44
Лан, убедил :D Я ленив на такие тесты.

Vladimir
05.06.2016
17:54:46
все же места вроде // regexp for email /^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i

лучше комментить

Aleh
05.06.2016
17:59:04
const emailRegex = //;

еще варианты)

Aleh
05.06.2016
18:01:54
имхо для клиента const emailRegex=/^.+@.+\..+$/

Google
anoru
05.06.2016
18:06:31
Вы чего, комменты в коде очень даже нужны. Прямо представил гигантские компоненты без единой строчки кода

комментов

[Anonymous]
05.06.2016
18:07:18
Andrey
05.06.2016
18:07:21
компоненты должны быть небольшими, к слову

anoru
05.06.2016
18:07:48
выше кто-то кидал компонент на 10к строк. Или это не в этом чате)

Andrey
05.06.2016
18:08:04
лол

Aleh
05.06.2016
18:15:05
fakeemail@fake.fake
так и норм

на клиенте для подсветки надо только помочь пользователю не ошибиться, если он забыл точку или собаку

компоненты должны быть небольшими, к слову
в идеале не только компоненты)

Alexander
05.06.2016
18:32:59
Alexey
05.06.2016
18:51:27
Что значит не хорошо? Комментировать надо свои мысли и почему ты сделал так, а не иначе, чтобы потом не гадать.
Лучше стараться создавать понятный код, чтобы не было необходимости его дополнительно пояснять

Евгений
05.06.2016
18:54:36
Лучше стараться создавать понятный код, чтобы не было необходимости его дополнительно пояснять
Если ты пишешь комментарий, который дублирует название метода, или сам метод очевиден, то это плохой комментарий. Но иногда стоит оставить комментарий с пояснением самой логики, особенно если это бизнес-логика.

Alexey
05.06.2016
19:01:36
Но я про комментарии в коде

Описание функции / модуля — ок

Евгений
05.06.2016
19:02:58
Ну у меня в основном получаются тудушки и описание багфиксов технологий
Простой пример: мне как то данные приходили из сервиса в плохом виде, мне надо было их смаппить. Я оставил комментарий с пояснением и туду на выпиливание маппинга после фикса сервиса.

Страница 164 из 5115