@proGO

Страница 1305 из 1674
Kirill
22.03.2018
09:35:33
Но нотки здравого смысла в этом есть

Mykyta
22.03.2018
09:39:02
Допустим вы нашли баг в неэкспортируемой функции - нужно писать тест на нее, это нормально
Это ненормально и вообще концептуально неверно и неправильно. Если в юнит-тесте мы можем влезть в потроха реализации, это значит что и юнит тест написан неправльно, и код написан тоже неправильно раз такое можно сделать.

Dmitry
22.03.2018
09:39:37
Юнит тест может иметь доступ к внутренним частям объекта - это нормально.

В TDD это само по себе может получиться на шаге рефакторинга, когда вы некую функциональность выносите в отдельный метод, чтобы упростить тестирование

Google
Dmitry
22.03.2018
09:41:10
Простые и читаемые тесты куда важнее эфемерного требования тестировать только внешние интерфейсы

Mykyta
22.03.2018
09:42:04
Вообще не имеет смысла тестировать ничего internal

Во-первых, все тесты поломаются, если кто-то что-то порефакторит

Во-вторых, это происходит, если код - лапша и цикломатическая сложность делать код недостижимым для теста

Dmitry
22.03.2018
09:43:24
Да

Как раз для нетривиальщины и работает

Roman
22.03.2018
09:44:00
Да
а можно чуть подробнее рассказать как?

Dmitry
22.03.2018
09:44:12
А что именно непонятно?

Mykyta
22.03.2018
09:44:28
В-третьих, это нарушает инкапсуляцию, и три принципа из solid

Dmitry
22.03.2018
09:44:28
Вы пишете тесты, потом код

Roman
22.03.2018
09:44:42
ну вот пишу я что-то. накатал тесты, потом код. а потом оказалось, что требования поменялись

ну или просто идея нерабочая

Google
Dmitry
22.03.2018
09:45:39
Ничего не нарушает. Это же тесты - там другие правила, не путайте. Ещё скажите, что DRY нарушают.

Dmitry
22.03.2018
09:46:27
Меняете тесты и все

Roman
22.03.2018
09:46:49
Тут тесты как раз помогают
ну так тесты для чего? задача поменялась, надо другие тесты

получается, что мы 2 раза писали зря: сначала тесты, потом код.

Mykyta
22.03.2018
09:47:12
Ничего не нарушает. Это же тесты - там другие правила, не путайте. Ещё скажите, что DRY нарушают.
DRY актуально и для тестов, один тест тестирует что-то одно один раз

Kirill
22.03.2018
09:47:31
Хоть сначала тесты потом код, хоть наоборот

Roman
22.03.2018
09:48:28
Так это в любом случае будет
с чего это вдруг? сначала пишем код, потом покрываем тестами. если мы на этапе написания кода поняли что идея нерабочая - просто переписываем код, а не тесты+код

Mykyta
22.03.2018
09:49:19
и?
Ну у тебя есть код, задача поменялась - его не надо переписывать, а просто расширять так, чтобы он решал какую-то новую задачу

Dmitry
22.03.2018
09:49:34
Если вы тестируете идеи - стоит задуматься о необходимости тестов

Roman
22.03.2018
09:50:45
Если вы тестируете идеи - стоит задуматься о необходимости тестов
так вот об этом и речь: мы написали кучу тестов, а потом уперлись в какое-то ограничение языка, например.

Dmitry
22.03.2018
09:51:29
Значит у вас плохо с экспертизой

Kirill
22.03.2018
09:51:42
Всё равно переписывать

Google
Mykyta
22.03.2018
09:52:00
Чтобы использовать TDD, надо изначально сначала в голове выделить все зависимости, потом в коде описать их интерфейсами и держать в голове, как это все вместе потом будет работать. После чего для каждого интерфейса по-отдельности создавать реализацию и ее тестировать

Roman
22.03.2018
09:52:08
чтобы далеко не ходить: например, мы пишем какой-нибудь умножатель матриц. написали кучу тестов, начали писать код и поняли что оно неприемлемо медленно.

Dmitry
22.03.2018
09:52:40
Темы у вас останутся

Dmitry
22.03.2018
09:52:45
Реализацию поменяете

Mykyta
22.03.2018
09:53:21
чтобы далеко не ходить: например, мы пишем какой-нибудь умножатель матриц. написали кучу тестов, начали писать код и поняли что оно неприемлемо медленно.
И что? Есть у нас тип Matrix, интерфейс Multiplyer, чтобы там не менялось внутри, тесты все равно должны продолжать работать

Александр
22.03.2018
09:53:30
народ, а как можно бахнуть "дешешо и сердито" взаомодействие между процессами по сети?

Roman
22.03.2018
09:53:31
Чтобы использовать TDD, надо изначально сначала в голове выделить все зависимости, потом в коде описать их интерфейсами и держать в голове, как это все вместе потом будет работать. После чего для каждого интерфейса по-отдельности создавать реализацию и ее тестировать
>надо изначально сначала в голове выделить все зависимости, потом в коде описать их интерфейсами и держать в голове ну вот об этом я и говорю: тривиальные случаи. потому что любые изменения в такой конструкции => боль.

Александр
22.03.2018
09:53:53
у меня есть "мамка" и "дети", дети постоянно шлют пакеты на мамку

Roman
22.03.2018
09:54:33
Так тесты останутся) а код оптимизируете
оох... вы цепляетесь за частности. причина может быть иной.

Александр
22.03.2018
09:54:54
Udp
а более высокоуровневое? ?

Александр
22.03.2018
09:55:04
не охото это все с нуля реализовывать

Александр
22.03.2018
09:55:18
охото просто структуру кинуть, структуру получить

Kirill
22.03.2018
09:55:42
Если клиенты не мобильные, то используй grpc

Roman
22.03.2018
09:55:49
Udp
а и кидаться не больше mtu-28 байт?

Roman
22.03.2018
09:56:22
Kirill
22.03.2018
09:56:37
Но все мои знакомые против grpc

Google
Roman
22.03.2018
09:56:45
Да
а потом вспомнить про pmtu и фрагментацию

и понеслось ))

Kirill
22.03.2018
09:57:01
Но удп решает вопросы, атвичаю

Roman
22.03.2018
09:57:39
охото просто структуру кинуть, структуру получить
какой размер сообщеньки? где клиенты? допустимы ли потери? )

Kirill
22.03.2018
09:58:15
вопросы packet loss?
Не, это слишком низко для udp

Roman
22.03.2018
09:58:46
Не, это слишком низко для udp
но вполне больно для приложеньки. при том, что потери udp возможны даже на loopback )

Александр
22.03.2018
09:59:27
а вот насколько быстро будут доставлены "пакеты", не критично

Admin
ERROR: S client not available

Александр
22.03.2018
10:02:12
и главное что бы в разработки можно было быстро накидать, без эти всех нюансов с сетью ?

я уже прикидываю gob + tcp

Daniel
22.03.2018
10:04:51
зачем? почему не json + http?

Roman
22.03.2018
10:05:48
зачем? почему не json + http?
ему структурки хочется

а json будет жирный

Alex
22.03.2018
10:06:13
кто нибудь знает как в logrus сделать пересоздние файла логов каждый день?

Daniel
22.03.2018
10:07:03
народ, а как можно бахнуть "дешешо и сердито" взаомодействие между процессами по сети?
самый дешевый и сердитый в плане разработки из всего, что мне встречалось - zmq но он есть только в виде биндингов вернее, есть и в виде pure go, но в ограниченной функцинальности, и надо изучать, хватит ли ее для твоих задач

Igor
22.03.2018
10:07:05
кто нибудь знает как в logrus сделать пересоздние файла логов каждый день?
Вроде никак. У них концепция, что такими операциями должен заниматься logrotate

Daniel
22.03.2018
10:08:00
Вроде никак. У них концепция, что такими операциями должен заниматься logrotate
logrotate не умеет этого без поддержки приложения. так что надо какой-то внешний логгер использовать

Google
Daniel
22.03.2018
10:08:12
у нас не просили прекрасное

Александр
22.03.2018
10:08:19
zmq наводит на меня тоску ?

Daniel
22.03.2018
10:08:28
у нас просили дешевое и сердитое на этапе разработки

Roman
22.03.2018
10:08:29
у нас не просили прекрасное
нуу... он создает больше проблем, чем счастья

Александр
22.03.2018
10:08:30
это вы называете "дешевым в разработке"? ?

Daniel
22.03.2018
10:08:45
да, я называю это дешевым в разработке

Igor
22.03.2018
10:08:45
http + msgpack

Roman
22.03.2018
10:09:25
без потери, размер "пакета" около 2-3 кб
а чем тебе не нравится net/rpc?

Daniel
22.03.2018
10:10:29
да, я называю это дешевым в разработке
собственно, фишка ровно одна - ты создал "соединение", и можешь им пользоваться без оглядки на другой конец. а он получит, что сможет, когда сможет.

Александр
22.03.2018
10:10:34
избыточно, мне только структуры в одну сторону кинуть

Александр
22.03.2018
10:11:00
udp это траханье с доставкой ?

Roman
22.03.2018
10:11:01
тогда udp
оно не влезет в 1 пакет

и ему гарантии ннада

Daniel
22.03.2018
10:11:21
оно не влезет в 1 пакет
или пожать, или jumbo frames включить

udp это траханье с доставкой ?
ты не просил доставку, ты просил отправку

Roman
22.03.2018
10:11:47
или пожать, или jumbo frames включить
jumbo не существует в интернетах )

Daniel
22.03.2018
10:12:03
в интернетах и с udp проблема

Roman
22.03.2018
10:12:11
udp это траханье с доставкой ?
тебе в lan ннадо или через интернеты?

Александр
22.03.2018
10:12:35
и так и так

Roman
22.03.2018
10:12:36
в интернетах и с udp проблема
да даже не в интернетах с jumbo проблемы.

Daniel
22.03.2018
10:12:44
какие?!

Страница 1305 из 1674