@gogolang

Страница 1471 из 1630
Александр
27.09.2018
23:20:04
а это уже совсем другой метод получится

Roman
27.09.2018
23:20:28
ну я веду к тому что обычно третий пункт вашен при криворуких людях которые тупо меняют данные что им дают. И этот вариант можно решить именно вторым пунктом
криворуким может оказаться даже гуру. Человек не алгоритм и независимо от того, как часто вы ему говорите о том что он "должен" - он всё-равно делает ошибки. Будучи реалистами, понимая что такие ошибки будут всегда происходить - наша задача: уменьшить вероятность таких ошибок.

anatolii
27.09.2018
23:20:55
именно

Александр
27.09.2018
23:21:06
где тут проблема то?

Google
Александр
27.09.2018
23:21:59
какой то программиста-маразматик, сменил сигнатуру везде (включая вызовы) и потом ЗАБЫЛ

да с таким же успехом я могу переменные просто путать в теле

anatolii
27.09.2018
23:22:11
любое изменение данных отражается в результате

Roman
27.09.2018
23:22:14
тесты наше все, такое ловится на раз
я тоже так думал раньше) увы, всё не так просто

anatolii
27.09.2018
23:22:51
согласен, не просто, хорошо что го хоть пинает о неиспользуемых переменных, иначе вообще плохо все было

Александр
27.09.2018
23:23:09
кусок вырезаешь чисто позырить

Roman
27.09.2018
23:23:17
вот если бы ещё так-же за мутации пинал было бы здорово ?

Александр
27.09.2018
23:23:27
"блэт переменную а не используешь"

anatolii
27.09.2018
23:23:28
писали бы что угодно, в результат кидали бы неизвестнве переменные и все бы работало плохо

ну если честно, сказать что "я пишу в структуру куда не надо и хочу чтоб меня за это бил компилятор" это немножечко странно, не плохо а странно

Google
Roman
27.09.2018
23:27:29
потому-что мне спокойнее спится когда днём меня побил компилятор но я уверен что в коде "нет" ошибок. Нежели когда компилятор сказал "всё окей", а сервер ночью упал

anatolii
27.09.2018
23:28:39
с годами в разработке серверного ПО вы этим избиениям со стороны компилятора будете рады))
я не против этого, но так же не считаю это недостатком компилятора который надо срочно вот прям щас решить. Я работал с пхп и жс, меня уже сложно таким испугать

Roman
27.09.2018
23:29:18
я не против этого, но так же не считаю это недостатком компилятора который надо срочно вот прям щас решить. Я работал с пхп и жс, меня уже сложно таким испугать
размеры команды были какие? какой разброс по скилу участников команды? какой размер/масштаб проектов? как долго проекты мейнтейнились?

anatolii
27.09.2018
23:30:32
не скажу что прям супер крупные, прокеты обычно на <6 человек. Если больше просто делим на независимые модули и каждый варится у себя, по сути разделяя проетк на части

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

Roman
27.09.2018
23:33:47
я работал над софтиной в несколько лямов кода, которая содержалась на протяжении 5 лет к тому моменту (было это тут https://www.adition.com/) и команда была > 50 человек. Всё это дело писали на C++. Если бы тогда Rust был уже достаточно популярным и я про него знал - я бы либо уволился либо переписал всё на Rust))) Потому-что баги там были феерические

anatolii
27.09.2018
23:35:05
гарантирую, под растом у вас тоже были бы проблемы, может чуть меньше но тем не менее. Обычно логические ошибки переносятся из проекта в проект

Roman
27.09.2018
23:35:56
а data race это вообще страшная вещь

её можно даже и не заметить

всё будет похоже на то что всё окей, а на самом деле данные корримпированные

anatolii
27.09.2018
23:36:55
ну да, язык дает свои "бенефиты" тут ничего не поделаешь. Но иногда на жс сложней писать чем на плюсах с его безопасностью )

Roman
27.09.2018
23:37:41
ладно, не будем оффтопить

anatolii
27.09.2018
23:38:44
ну, подведя итог, я за имутабле в реале. Подходишь и бьешь по рукам разраба :) а данные не по ссылке передавать где опасное место

Александр
27.09.2018
23:39:41
у меня был конечно кейс

с конфигом

но я решил через сеттеры

anatolii
27.09.2018
23:40:20
ну конфиг да, это кстати прекрасный пример

Google
Александр
27.09.2018
23:42:34
это и понятно

оно юзает рефлект

anatolii
27.09.2018
23:43:38
ну то была первая ссылка, я просто показал что есть библиотеки в принципе

Александр
27.09.2018
23:43:50
couchdb.NewConnection(config.GetString("DB.Host"), config.GetInt("DB.Port"), timeout)

у меня конфиг так юзается

может это конечно и не правильно, пути протягивать через string

anatolii
27.09.2018
23:46:09
ну тогда пока что копипаст :)

Roman
27.09.2018
23:49:29
ну тогда пока что копипаст :)
но если таки решите перейти на тёмную сторону силы то предложу поставить proposal'у звёздочку в знак солидарности)

anatolii
27.09.2018
23:50:43
я подумаю

а де он собственно?

ато много наговорили

Roman
27.09.2018
23:52:21
а де он собственно?
https://github.com/romshark/Go-2-Proposal---Immutability может даже пару строк почитаете ?

anatolii
28.09.2018
00:06:36
В дарте такое есть

Вообше хорошо к делу подошли, полно описали

anatolii
28.09.2018
00:17:09
В дарте к этому даже подошли с особым пониманием, там есть специальные конструкторы классов константные. Удобно, согласен ?

Yo
28.09.2018
05:21:48
ну, подведя итог, я за имутабле в реале. Подходишь и бьешь по рукам разраба :) а данные не по ссылке передавать где опасное место
Блин... Я это все прочитал. Целый день некогда было залезть в чат, а тут 500> сообщений. Роман совершенно прав, dangling pointers, pointer aliasing — это беда языка, если её не решить хоть каким способом. Скала, раст решили эту детскую проблему. Проблема очевидна только тем, кто её понимает. Начать понимать её можно только на больших командах (точнее разными командами на одном проекте), с очень разношерстной публикой от новичков до опытных. На проекте, где как обычно некогда разбираться, что делает чужой код/либа, но вдруг!! оказывается что она меняет твои данные (состояние), которые ты не ожидал для изменения! И не ты их сам сознательно поменял, а произошёл "side effect" и цепочка выполнения, которая к этому привела, оказалась "очень вычурной и витеиватой". Кто с этим сам не сталкивался, писал только "домашние" проекты, тот к сожалению мало понимает суть проблемы, увы.... Эта проблема отсутствует в скала, потому что заложена в языке, тк сделать мутацию как сайд-эффект можно только сознательно и тогда коллеги это внимательно изучат, насколько это оправдано. Раст решил это на уровне компилятора. Это же решение ОЧЕНЬ НЕОБХОДИМО в компиляторе Go. Но есть сомнения, как вообще создатели го относятся к этой идее? Какие были или нет контакты, комменты от них, Роман? Может имеет смысл бомбить их на почту, в гугл группе, в слак каналах? Какие кто знает "наиболее прямые точки доступа" к создателям языка и компилятора? Поставить star + watch в гитхабе — это почти ни о чем... Нужно больше усилий и я понимаю Романа и его постоянные попытки форсить и рекламировать свой proposal на канале. Но нужны другие, более "прямые и точные каналы", чтобы обращаться к "главным го разработчикам". Роман, думаю ещё стоило бы сделать более наглядные (то ли простые, то ли наоборот quiz, не очевидные примеры) с примером такого поведения, которое disaster. Да, иногда вы можете увидеть и дать кому то" по рукам" в своей команде, но лучше, чтобы за вас это делал компилятор!

Alexander
28.09.2018
05:35:56
Блин... Я это все прочитал. Целый день некогда было залезть в чат, а тут 500> сообщений. Роман совершенно прав, dangling pointers, pointer aliasing — это беда языка, если её не решить хоть каким способом. Скала, раст решили эту детскую проблему. Проблема очевидна только тем, кто её понимает. Начать понимать её можно только на больших командах (точнее разными командами на одном проекте), с очень разношерстной публикой от новичков до опытных. На проекте, где как обычно некогда разбираться, что делает чужой код/либа, но вдруг!! оказывается что она меняет твои данные (состояние), которые ты не ожидал для изменения! И не ты их сам сознательно поменял, а произошёл "side effect" и цепочка выполнения, которая к этому привела, оказалась "очень вычурной и витеиватой". Кто с этим сам не сталкивался, писал только "домашние" проекты, тот к сожалению мало понимает суть проблемы, увы.... Эта проблема отсутствует в скала, потому что заложена в языке, тк сделать мутацию как сайд-эффект можно только сознательно и тогда коллеги это внимательно изучат, насколько это оправдано. Раст решил это на уровне компилятора. Это же решение ОЧЕНЬ НЕОБХОДИМО в компиляторе Go. Но есть сомнения, как вообще создатели го относятся к этой идее? Какие были или нет контакты, комменты от них, Роман? Может имеет смысл бомбить их на почту, в гугл группе, в слак каналах? Какие кто знает "наиболее прямые точки доступа" к создателям языка и компилятора? Поставить star + watch в гитхабе — это почти ни о чем... Нужно больше усилий и я понимаю Романа и его постоянные попытки форсить и рекламировать свой proposal на канале. Но нужны другие, более "прямые и точные каналы", чтобы обращаться к "главным го разработчикам". Роман, думаю ещё стоило бы сделать более наглядные (то ли простые, то ли наоборот quiz, не очевидные примеры) с примером такого поведения, которое disaster. Да, иногда вы можете увидеть и дать кому то" по рукам" в своей команде, но лучше, чтобы за вас это делал компилятор!
По моему создатели го сделали го типизированным лишь затем, чтобы он работал быстрее. Что уж говорить о каких-то нетривиальных компайл-тайм проверках.

Jack
28.09.2018
05:36:54
привет.кто работал с https://github.com/Dimonchik0036/vk-api ,как в update.Message получить название беседы?

Google
snip
28.09.2018
05:38:05
Блин... Я это все прочитал. Целый день некогда было залезть в чат, а тут 500> сообщений. Роман совершенно прав, dangling pointers, pointer aliasing — это беда языка, если её не решить хоть каким способом. Скала, раст решили эту детскую проблему. Проблема очевидна только тем, кто её понимает. Начать понимать её можно только на больших командах (точнее разными командами на одном проекте), с очень разношерстной публикой от новичков до опытных. На проекте, где как обычно некогда разбираться, что делает чужой код/либа, но вдруг!! оказывается что она меняет твои данные (состояние), которые ты не ожидал для изменения! И не ты их сам сознательно поменял, а произошёл "side effect" и цепочка выполнения, которая к этому привела, оказалась "очень вычурной и витеиватой". Кто с этим сам не сталкивался, писал только "домашние" проекты, тот к сожалению мало понимает суть проблемы, увы.... Эта проблема отсутствует в скала, потому что заложена в языке, тк сделать мутацию как сайд-эффект можно только сознательно и тогда коллеги это внимательно изучат, насколько это оправдано. Раст решил это на уровне компилятора. Это же решение ОЧЕНЬ НЕОБХОДИМО в компиляторе Go. Но есть сомнения, как вообще создатели го относятся к этой идее? Какие были или нет контакты, комменты от них, Роман? Может имеет смысл бомбить их на почту, в гугл группе, в слак каналах? Какие кто знает "наиболее прямые точки доступа" к создателям языка и компилятора? Поставить star + watch в гитхабе — это почти ни о чем... Нужно больше усилий и я понимаю Романа и его постоянные попытки форсить и рекламировать свой proposal на канале. Но нужны другие, более "прямые и точные каналы", чтобы обращаться к "главным го разработчикам". Роман, думаю ещё стоило бы сделать более наглядные (то ли простые, то ли наоборот quiz, не очевидные примеры) с примером такого поведения, которое disaster. Да, иногда вы можете увидеть и дать кому то" по рукам" в своей команде, но лучше, чтобы за вас это делал компилятор!
Есть вполне нормальный и прямой способ предлагать свои идеи, а спамить коретим это не нормальный способ

Savely
28.09.2018
05:38:27
привет.кто работал с https://github.com/Dimonchik0036/vk-api ,как в update.Message получить название беседы?
Я работал, но не мне сие не нужно было. Возможно оно не приходит вообще и тебе надо дернуть метод какой-то.

Yo
28.09.2018
05:40:20
По моему создатели го сделали го типизированным лишь затем, чтобы он работал быстрее. Что уж говорить о каких-то нетривиальных компайл-тайм проверках.
Скажите, что для вас важнее? — Быстрее работа компилятора и кода на cpu — быстрее работа программера и "меньшее создание" неочевидных и трудно находимых ошибок? Какая из этих работ оценивается дешевле /дороже?

Subbotin
28.09.2018
05:46:09
Скажите, что для вас важнее? — Быстрее работа компилятора и кода на cpu — быстрее работа программера и "меньшее создание" неочевидных и трудно находимых ошибок? Какая из этих работ оценивается дешевле /дороже?
Не факт, что скорость работы программера будет выше на расте/скале чем на го, если взять рандомного прогера и потратить одинаковое время на изучение языка

Стоит оценивать совокупную стоимость владения-разработки софта

Admin
ERROR: S client not available

Yo
28.09.2018
05:55:06
Не факт, что скорость работы программера будет выше на расте/скале чем на го, если взять рандомного прогера и потратить одинаковое время на изучение языка
Под "скоростью" я подразумевал немного другое, извините, не совсем точно выразился. Речь не про скорость кодинга или проектирования. Цена ошибки и цена её исправления, которая займёт время и нервы (а произойдёт она как правило на продакшн, и как бывает после свежего деплоя). Цену этого сложно вычислить "легко и точно". Но лучше и правильнее это сделать в языке и компилятором, даже за счёт "сложных проверок" или "увеличения времени компиляции", чем потраченными человеко-часами. Кто этого не понимает, увы, его убедить, что это важно сложно. Это только с опытом приходит, что лучше этого гемороя НЕ иметь и столкнуться "иногда", чем иметь заложеннвй в языке, для "супер скоростной компиляции".

Alexander
28.09.2018
05:55:24
скорость компиляции это конечно хорошо, но не так хорошо, если после компиляции всегда нужно запускать тесты

Yo
28.09.2018
05:56:13
Alexander
28.09.2018
05:56:53
Скала — строго типизированный язык, и при этом имеет это "из коробки".
А я ничего против и не имею. Я вообще любитель руста и хаскеля.

А за деньги пишу на го.

Вот такая вот грустная история.

V
28.09.2018
05:58:27
Ошибки создаёт не язык, а программист.

Subbotin
28.09.2018
05:58:45
Под "скоростью" я подразумевал немного другое, извините, не совсем точно выразился. Речь не про скорость кодинга или проектирования. Цена ошибки и цена её исправления, которая займёт время и нервы (а произойдёт она как правило на продакшн, и как бывает после свежего деплоя). Цену этого сложно вычислить "легко и точно". Но лучше и правильнее это сделать в языке и компилятором, даже за счёт "сложных проверок" или "увеличения времени компиляции", чем потраченными человеко-часами. Кто этого не понимает, увы, его убедить, что это важно сложно. Это только с опытом приходит, что лучше этого гемороя НЕ иметь и столкнуться "иногда", чем иметь заложеннвй в языке, для "супер скоростной компиляции".
А вот это вопрос. Софт бывает разный. Баги есть везде. И делая софт мы всегда ищем компромисс между богами и скоростью/ценой. Если у тебя баланс и так смещен в сторону скорости и есть много других багов кроме сайд-эффектов владения, то внезапно го выгоднее

V
28.09.2018
05:59:38
Легаси и говнокод на любом языке, чего бурчать-то

Alexander
28.09.2018
05:59:56
V
28.09.2018
06:00:08
Что вы просто флудите (:

Yo
28.09.2018
06:01:52
Ошибки создаёт не язык, а программист.
Никто не спорит. Другое дело если язык позволяет сделать очень неприятную и трудно отлавливаемую ошибку, или язык защищён от того, чтобы сделать такую ошибку случайно. Специально воспользоваться возможностями языка и нести ответственность — пожалуйста. Но также иметь возможность "специально защититься" от такой ошибки, именно этого сейчас нет, и именно это предлагает proposal.

Google
V
28.09.2018
06:05:23
С другой стороны чем больше инструментов, тем сильнее можно наговнокодить и сложнее потом в этом разобраться

Alexander
28.09.2018
06:05:45
Ошибки создаёт не язык, а программист.
В любой инженерной области дабы повысить надёжность и производительность стараются убрать из производственной цепочки человека. А если из цепочки человека убрать невозможно, то стараются сделать всякие штуки, чтобы проверять, что человек не делает херню.

К сожалению программирование — это по большей части не инженерная область.

А детсад.

V
28.09.2018
06:08:51
Вот поэтому независимо от языка есть две лучшие практики: тесты и код ревью

Диёр
28.09.2018
06:11:53
Кодревью это человеческий фактор, тесты тоже

V
28.09.2018
06:12:53
Это называется мутацтонное тестирование, рекомендую

Alexander
28.09.2018
06:13:37
если бы у нас так мосты строили, то их срок годности считался бы месяцами

Pavel
28.09.2018
06:18:20
чсх у нас их так и строят
Пока обкатывают на стадионах.

Yo
28.09.2018
06:21:11
Детские проблемы преследуют годами, хотя рабочие решения уже есть. Не говорите мне про говно-легаси, я знаю. https://tproger.ru/news/dangling-pointers-detection/

Yo
28.09.2018
06:28:44
NLL в кубе, хром будет неделю компилироваться
Ну например, неделю компилировать и не иметь утечек, которые иногда есть, иногда нет, а иногда есть, но не у всех, и проявляются не всегда... Те потратить месяцы на поиск утечки, ещё раз неделю компилировать. Или компилировать неделю, не релизить ещё неделю, исправляя баги, компилить неделю.

Страница 1471 из 1630