@gogolang

Страница 586 из 1630
Igor
21.10.2017
15:35:01
Если кому-то интересно: Довольно часто весомым аргументом для отказа кандидату после выполнения тестового задания являются: - отсутствие комментариев в коде - отсутствие документации - отсутствие тестов Причина: нет опыта работы в команде, никому не интересно разбираться по коду - что там имелось ввиду, также команде нужен стабильный, надежный код.

Jon
21.10.2017
15:36:02
Тесты могу понять. Но комментарии?

Они нужны если нужно пояснить причину почему сделано так или иначе. Как правило тз не содержит такого кода.

Google
Igor
21.10.2017
15:41:46
Тесты могу понять. Но комментарии?
Говорю же, чужой код читается легче, если присутствуют комментарии - в команде это важно. Посмотрите на Github код профессионалов, посмотрите стандартные либы Go - там не только объяснение почему так сделано. Теперь про техническое задание. Большинство решений можно найти в интернет. Смотрится не только как человек умеет кодировать, но и как может объяснять свои действия, кратко и емко - это важно.

Почему для стартапов сейчас очень популярен язык Go? Потому что очень легко читается. Привлекает контрибьютеров тем, что им понятно и легко участвовать в проектах. Так вот, комментарии для любого ЯП повышают читаемость в разы.

Irina
21.10.2017
15:56:40
А есть у кого-то примеры тестовых заданий?

Igor
21.10.2017
16:01:23
Ну может это специфика го, что нет объектов. Если у тебя есть класс NewsManagager и и него есть метод downloadAllNewsFromServer То как бы что там ещё в комментариях писать?
В комментариях нужно писать кратко что делает метод и если есть ньюаннсы работы сервера, то обязательно их упомянуть. Что касается downloadAllNewsFromServer - попытка впихнуть в название комментарий - это тоже тяжело читается, так как обращение в коде к 3-5 методам с таким названием перегружают сам код.

Andrey
21.10.2017
16:01:48
Ира: https://pastebin.com/RZiDWhYC

Igor
21.10.2017
16:07:11
Самодокуменьируемый кол
Вот кстати не первый раз слышу такую фразу. В конечном счете она ошибочна. В официальном гайде вам не рекоммендуют НЕ писать комментарии к коду. К тому же в методах типа downloadAllNewsFromServer может быть много особенностей, например: - формат закачки - кол-во данных - протокол соединения - особенности сервера ... список можно продолжить - это всё ньюансы и не все бывают очевидны

Igor
21.10.2017
16:19:08
Названия функций должны самодокументрировать код и четко отражать работу функции
Верно, но это не повод называть функцию типа downloadSpecificNewsByAuthorFrom SpecificServer

anton
21.10.2017
16:20:39
Google
Igor
21.10.2017
16:21:06
Ещё более простой пример- функция SaveUser(user)- что тут можно написать в комментарии ?
Здесь и в любой подобной функции всегда хорошо указывать ньюансы работы функции, если конечно она не трёхстрочная (хотя и там бывают интересные случаи ?)

Пример описания WriteHeader https://github.com/golang/go/blob/master/src/net/http/server.go#L1125

Однострочная функция Write https://github.com/golang/go/blob/master/src/net/http/server.go#L1438

Стандартная либа в некоторых случаях - хороший пример как писать на Go

Andrew
21.10.2017
16:27:40
Slach
21.10.2017
16:28:07
Бодрый вечер люди добрые подскажите глупому? есть две даты типа time.Time как между ними цикл сделать? через равное кол-во дней? хотел как то по питонячи... но в time.Time кучи операторов оказывается не определено for date := Config.DateSince; date < Config.DateUntil; date = date + time.Hour * 24; { }

Igor
21.10.2017
16:28:27
Gometalinter бы поругался на комментарий ))
Либа создавалась куда раньше металинтера ?

Andrey
21.10.2017
16:29:20
Carbon ищи в golanglibs

Slach
21.10.2017
16:32:10
Andrew
21.10.2017
16:32:34
Andrey
21.10.2017
16:32:43
>Carbon ищи в golanglibs

Jon
21.10.2017
16:33:16
Верно, но это не повод называть функцию типа downloadSpecificNewsByAuthorFrom SpecificServer
Я же говорю это официальный гайд, более того тебя не поймут если ты будешь писать по другому. Ну и много книг пишут об этом. Например чистый код. Формат закачки, количество данных, протокол соединения это все отражается в именах методов и классов. То есть у тебя фабрики который иждектят другие классы по протоколам и они меняют логику твоего кода, но все это отлично читается. Но, если уже есть какие то реальные нюансы, которые не удалось отразить в названии или архитектуре то ты пишешь комментарий. Но такое в типичных проект не часто встречается

Slach
21.10.2017
16:34:18
time.Time это ж вроде int64 под капотом
нашел .Before спасибо за помощь

Andrey
21.10.2017
16:35:12
https://github.com/andboson/carbon https://github.com/uniplaces/carbon нельзя сравнивать по инту вы тогда теряете пояс

Andrew
21.10.2017
16:40:06
https://github.com/andboson/carbon https://github.com/uniplaces/carbon нельзя сравнивать по инту вы тогда теряете пояс
Думаю, что не теряется, т.к. в int'е хранится отсчёт от одной даты https://golang.org/pkg/time/#Time

Andrey
21.10.2017
16:42:50
ага, только в Москве и в Лондоне это будет разное время

Jon
21.10.2017
16:43:15
И как раз в техническом задании есть великолепный повод показать, что есть умение объяснять свои действия в коде. Есть прекрасное выражение То, что очевидно для одного, совершенно не обязательно очевидно для всех
Ну может быть обратный эффект. Проверяющийся может подумать что твой скилл не очень, если ты в комментариях пишешь очевидные вещи. //это цикл для поиска четных элементов For element in array{ If element.index %2 == 0 }

Google
Andrew
21.10.2017
16:44:39
Ну может быть обратный эффект. Проверяющийся может подумать что твой скилл не очень, если ты в комментариях пишешь очевидные вещи. //это цикл для поиска четных элементов For element in array{ If element.index %2 == 0 }
Справедливости ради, проверяющий может что угодно себе надумать. Много комментариев - пишеш очевидные вещи. Мало комментариев - недостаточно комментируешь.

Igor
21.10.2017
16:47:37
Ну может быть обратный эффект. Проверяющийся может подумать что твой скилл не очень, если ты в комментариях пишешь очевидные вещи. //это цикл для поиска четных элементов For element in array{ If element.index %2 == 0 }
Максимализм ? Для этого нужно сохранять баланс и писать комментарии там где они нужны. Но совсем без комментариев не должно быть - особенно если ТЗ не для джуниора. Там как правило достаточно много интересных неочевидных вещей.

Slach
21.10.2017
17:29:08
народ в golang interface{} в параметры ф-ции, это передача по ссылке или по значению?

Valentin
21.10.2017
17:29:34
По ссылке

Andrey
21.10.2017
18:19:04
У интерфейса нет значения а вообще, крайне хреновая практика - пустой интерфейс юзать, вместо типов

Semyon
21.10.2017
22:03:54
Доброй ночи! Есть у кого-нибудь пример исходника телеграм-бота на Go с использованием всех возможностей API, типа кнопок?

Sergius
22.10.2017
01:10:53
у меня на гитхабе или здесь: https://github.com/bot-api/telegram

Roman
22.10.2017
03:55:46
Кто знает как запустить в Gogland тесты с дебагом?)

Andrey
22.10.2017
08:23:06
Кто знает как запустить в Gogland тесты с дебагом?)
В Goglang ставишь брекпойнт и впред

Roman
22.10.2017
08:25:33
В обычном коде бряки срабатывают, а тесты запускаются без дебага. Даже жучок неактивный. Может как-то по особенному нужно настроить?

Andrey
22.10.2017
08:36:32
Рома, просто запусти тест Появится конфигурация и станет активной значек отладки Ну или можно из контекстного меню на тесте сразу отладку

Roman
22.10.2017
08:42:27
а в конфигурации что? Go Single File или Go Application?
Файл Все какой-то глюк айдишки наверное. Создал новый проект, оно автоматом создало конфигурацию

anton
22.10.2017
08:46:23
Файл Все какой-то глюк айдишки наверное. Создал новый проект, оно автоматом создало конфигурацию
вот с Go Single File на сколько мне помнится, тесты в дебаге не запускаются

Roman
22.10.2017
08:48:38
У меня так сработал бряк http://dl3.joxi.net/drive/2017/10/22/0012/2001/813009/09/867d6eb761.png Почему до этого не работало не ясно

Мерлин
22.10.2017
09:20:12
https://github.com/achiku/wbs

Don’t just check errors, handle them gracefully https://dave.cheney.net/2016/04/27/dont-just-check-errors-handle-them-gracefully

Google
double
22.10.2017
14:19:23
Здравствуйте, можете подсказать, где можно почитать про шаблоны?

Леша
22.10.2017
14:48:50
Здравствуйте, можете подсказать, где можно почитать про шаблоны?
https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/07.4.html например. еще доки.

Леша
22.10.2017
14:49:15
не за что

Irina
22.10.2017
14:58:27
а есть какие-то общие соображения, где можно использовать шаблоны, а где лучше сразу юзать javascript библиотеки/фреймворки для фронтенда? Просто вижу, что во всех туториалах и книгах шаблоны идут одной из первых глав, при этом когда общаюсь с девелоперами, они говорят что в их проекте никаких шаблонов, только реакт и т.п.

double
22.10.2017
15:54:59
каждый пост это шаблон

Slava
23.10.2017
02:30:26
Aliaksandr
23.10.2017
06:52:23
Если хотите, чтобы гугл нормально находил ваш сайт по его содержимому, то забейте на весь новомодный фронтенд и генерите html на стороне сервера, как 20 лет назад :)

Alexander
23.10.2017
06:53:27
А Яндекс?

Aliaksandr
23.10.2017
07:04:37
Яндекс аналогично. Поисковики не могут знать о всех модных тенденциях в фронтенде, чтобы правильно находить контент для индексации в каждом shit.js фреймфорке. С plain html-ем все намного проще

SSR
SSR - это костыль для js фронта, чтобы его можно было кое-как проиндексировпть, или впереди не хватает буковки U ? Типа back to ussr )

Maks
23.10.2017
07:10:59
Подскажите, каким стандартным способом можно сделать eval выражения? К примеру «math.Pow(2, 4)»

Ilya
23.10.2017
07:15:15
Встроить компилятор в программу

Google
Andrew
23.10.2017
07:15:16
Или https://github.com/apaxa-go/eval

Maks
23.10.2017
07:17:34
Библиотеки видел, даже реализовывал с ними требуемую задачу, просто тащить с собой код, если есть типовое решение - нет желания, поэтому спросил. Нужно лишь квадрат и округления

Andrew
23.10.2017
07:19:48
Не думаю, что в стандартной либе есть такое.

Maks
23.10.2017
07:21:48
В стандартной либе есть парсер, ему можно задать все операции арифметические, возможно можно сделать и внедрение этого, буду копать, спасибо

Vladimir
23.10.2017
07:22:28
дык это, если набор операций ограничен - да сделай обычный парсер

парси что там пользователь вводил, строй дерево применений операций и применяй собственно)

Andrew
23.10.2017
07:23:52
дык это, если набор операций ограничен - да сделай обычный парсер
Плюсую. Если всего два варианта операций, то можно и без деревьев обойтись

Vladimir
23.10.2017
07:24:07

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