@dlangru

Страница 473 из 719
Pavel
22.03.2018
14:25:02
Интерпретируемые языки как раз позволяют быстро сделать медленный продукт, что абсолютно всех устраивает.

Denis
22.03.2018
14:25:12
Не поволяют.

Они позволяют быстро сделать задачу на лабе в вузике.

Pavel
22.03.2018
14:25:46
Это просто неоспоримый факт. Посади двух синьоров писать CRM на php и на D и первая команда выиграет.

Google
Pavel
22.03.2018
14:26:01
Им не надо ни утечки искать, ни с аллокациями ни с дедлоками ебацца.

Denis
22.03.2018
14:26:20
перформанс в каких попугаях будем мерить?

Pavel
22.03.2018
14:26:58
Система на пшп будет загружаться за 0.1 секунду, а на D за 0.01 секунду. Разницы никто не заметит :)

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

Так вот, все это к чему: при хорошей практике разработка через TDD позволяет пусть менее оптимальный код писать, но быстрее приходить к четкому пониманию предметной области.

И не переделывать код по 10 раз

Это не касается производительности, существенный момент. Оптимизация может потребовать сильно все переделать.

Pavel
22.03.2018
14:44:46
Не надо объяснять, я это десяток лет уже наблюдаю лично :) В десятках проектов, докладов, конференций.

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

И их бы обгоняли системные.

Stanislav
22.03.2018
14:48:23
ну щас часть народа вот валит с питонов на го в поисках перфоманса)

Pavel
22.03.2018
14:48:59
Да, это потому что данных стало так много и логика настолько сложная что это уже снова опять начинает все тормозить.

Google
Pavel
22.03.2018
14:49:55
Но это если заниматься всяким хайлоадом и анализом данных.

Как только наука инженерия ПО придумает как избегать трудозатрат на race condition, аллокации и всякие подобные оптимизации, то системные языки снова станут продуктивными и на них начнут обратно переходить.

Этот процесс идет постоянно, это как генетическая эволюция. Постоянно на всех языках пробуют делать стартапы. Те языки которые подходят, потом выживают и на них делают больше проектов. Те которые не подходят - не выживают и уходят в небытие.

Denis
22.03.2018
14:53:42
Не надо объяснять, я это десяток лет уже наблюдаю лично :) В десятках проектов, докладов, конференций.
Ну просто не надо с такими общаться ) Любой перформанс или любая пропускная способнсость всегда может быть забита ибо есть куча алгоритмов которые не параллелятся и не масштабируются

Pavel
22.03.2018
14:54:29
Остается просто взять и воспользоваться ими.

Dmitry
22.03.2018
15:16:41
А юнит-тесты при разработке по всем этим скрамам и агил писать реально? Просто опять же у нас уже пол года говорят что «теперь точно пишем». В итоге как обычно нефига никто не пишет. Это у всех так?

Pavel
22.03.2018
15:17:23
Да так у многих

Надо приучить к правильному воркфлоу

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

Представь что у тебя есть лодочка с дыркой и ты переплываешь речку. За это время лодочка не успевает затонуть, и ты думаешь "ну ок сейчас прокатило, в следующий раз заделаю дырку". Плаваешь так между берегами год. А потом тебя посылают переплыть озеро. Не успеваешь доплыть и тонешь :D

И уже под водой думаешь "надо было все-таки убрать техдолг и заделать дырку". А заказчики выбирают нового паромщика с более мелкой дыркой и нанимают его.

Если вкратце то вот как работает индустрия ПО :D

Dark
22.03.2018
15:22:00
Нет, есть еще второй вариант

Плюнуть на все и переписать

Так MS и делает

Denis
22.03.2018
15:24:02
Pavel
22.03.2018
15:25:06
Ох камон, причем тут рашка то вообще

Так делается абсолютно во всем мире

В Индии, в штатах, Китае, Азии, Европе. Это универсальный принцип.

Google
Pavel
22.03.2018
15:26:20
Собственно поэтому джава и выиграла, хоть у нее производительность поменьше чем C++ и она требует куда больше памяти.

Dark
22.03.2018
15:27:55
Не люблю джаву. Этакая громоздокая машина, что прожует что угодно и как угодно

Denis
22.03.2018
15:40:13
Ох камон, причем тут рашка то вообще
а ты не можешь тделить объективный опыт от субъективного. и ретранслируешь их хотелки на нормальных людей.

БИЗНЕСТРЕБОВАНИЯ слышишь? сразу в ебало бей

отъ

Pavel
22.03.2018
15:40:44
Ты по-моему какой-то неадекват немного :)

Из пещеры то хоть иногда вылезаешь?

Denis
22.03.2018
15:40:57
> В мире бизнес приложений 99% алгоритмов уже изобретено и дооптимизировано. никому никогда не говори - засмеют

я адекват как раз.

мантра о том что "всё уже написано" на моей памяти существовала всегда, и до меня, говорят, тоже

БИЗНЕСТРЕБОВАНИЯ слышишь? сразу в ебало бей
пускай им яваскриптеры пишут бухгалтерию. пару лямов проебут - поймут.

отъ

Dmitry
22.03.2018
15:42:11
Мне кстати упорно кажется что на Ди те же юнит-тесты куда логичнее и проще сделаны чем на том же питоне. Мне не сложно функцию чуть ниже протестить, но сложно в отдельный файл что то пихать

Denis
22.03.2018
15:42:22
в питоне они не часть языка прост.

Pavel
22.03.2018
15:42:31
пускай им яваскриптеры пишут бухгалтерию. пару лямов проебут - поймут.
ты так говоришь как будто на плюсах люди не проебывают миллионы

Пытаясь найти где-же сегфолтится

https://habrahabr.ru/post/260149/ вот тут вот прекрасным слогом написано :D

Читайте параграф Главная и единственная цель

Мне кстати упорно кажется что на Ди те же юнит-тесты куда логичнее и проще сделаны чем на том же питоне. Мне не сложно функцию чуть ниже протестить, но сложно в отдельный файл что то пихать
Я очень быстро уперся в куцые возможности. Когда прогоняешь тесты то там банально даже не выводится, какое значение ожидалось и какое значение получилось по факту. Просто падает ассерт и максимум инфы которую получаешь это номер строки. В то время как в нормальных тестовых фреймворках это красиво выводится в консольке цветом, номером строки и стектрейсом и даже параметрами вызова. Так что в Д надо по-любому пользоваться еще доп. библиотеками для тестов.

А есть ли там механизм для получения моков я даже не знаю, но походу нет.

Google
Pavel
22.03.2018
15:57:13
ну не

Надо просто мануал для assert внимательно прочитать
А чего там? показать expected/actual он все равно не умеет т.к. принимает на вход результат сравнения.

Denis
22.03.2018
16:28:33
он умеет проверить и выдать текстовую ошибку - этого достаточно

Stanislav
22.03.2018
16:30:19
мда, в vibe-core нормально ип не вытащить входящего подключения, если у тебя дуалстек он мне вот так вот сделал ипв4 адрес 0:0:0:0:0:ffff:c0a8:5801

почему то думает что у коннекшона AF_INET6, а не AF_INET

Denis
22.03.2018
16:36:24
> дуалстек этачо?

он тебе верно всё дал

Admin
ERROR: S client not available

Denis
22.03.2018
16:36:45
это маппинг в ипв6 ипв4 ажресов

стандартный

Stanislav
22.03.2018
16:37:26
мне прилетел запрос по ипв4

фэмили должен быть AF_INET, а там почему то AF_INET6

Denis
22.03.2018
16:39:55
фэмили должен быть AF_INET, а там почему то AF_INET6
потому что ипв4 однозначно маппятся в ипв6

годно! https://habrahabr.ru/post/260149/

Stanislav
22.03.2018
16:40:50
это-то понятно, но как мне узнать что это реально ипв4?)

Denis
22.03.2018
16:42:13
тебе это не нужно скорее всего

Stanislav
22.03.2018
16:44:02
мне это нужно, я пишу сетевой демон) либо мне список хостов держать в таком же замапенном виде. либо парсить хм

Denis
22.03.2018
16:44:34
а как к твоему демону коннектятся? ты listen как делаешь? наверняка коннектятся похуй каким протоколом

Google
Denis
22.03.2018
16:44:45
собсно, по адресу можно прямо понять ипв4 это или нет

подсеть выделена

> либо мне список хостов держать в таком же замапенном виде да

Stanislav
22.03.2018
16:46:53
ну это понятно, что можно сказать. лан, придется парсить походу в случае если af_inet6

Denis
22.03.2018
16:47:03
зачем?

тебе это не нужно по логике

ты же одинаково их обслуживаешь

Stanislav
22.03.2018
16:48:47
а как иначе? вот у тебя есть демон, может работать как с ипв4, так и с ипв6. протокол такой, что соседи явно прописываются руками. ты принял тцпконнекшн, у него af_inet6 адрес фэмили. и тебе нужно проверить к какому пиру относится пакет.

Denis
22.03.2018
16:49:55
зачем? живи всегда в ипв6

Stanislav
22.03.2018
16:50:17
а если сервер запустили на ipv4 only хосте?

Denis
22.03.2018
16:51:25
ну и что будет? (ничего)

Stanislav
22.03.2018
16:51:28
хм, а если повесить 2 разных слушающих сокета, один на ipv4, другой на ipv6 так сработает интересно или нет

Denis
22.03.2018
16:51:35
так никогда ипв6 не настанет с вами

Stanislav
22.03.2018
16:52:13
да не, я могу жить и так, просто мне придется либо ipv4 адрес из конфига переделывать в формат ipv6 mapped

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

Denis
22.03.2018
16:52:46
ну и чо? я всегда так адреса делаю

тем более что вайб поймёт оба варианта

Stanislav
22.03.2018
16:54:12
вайб поймет оба, а мой класс не поймет

Denis
22.03.2018
16:54:28
Почему так?

(а если бы это был не коннект а юникс сокет?)

Stanislav
22.03.2018
16:55:41
ну вот говорю же) чтобы научился понимать - надо метод дополнительный написать, который проверяет не замаплен ли адрес

Страница 473 из 719