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

anton
21.10.2017
15:35:55

Jon
21.10.2017
15:36:02
Тесты могу понять. Но комментарии?
Они нужны если нужно пояснить причину почему сделано так или иначе. Как правило тз не содержит такого кода.

Google

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

Jon
21.10.2017
15:55:01

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

Igor
21.10.2017
16:01:23

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

Jon
21.10.2017
16:02:30
Самодокуменьируемый кол

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

Valentin
21.10.2017
16:16:05
Ещё более простой пример- функция SaveUser(user)- что тут можно написать в комментарии ?

Igor
21.10.2017
16:19:08

anton
21.10.2017
16:20:39

Google

Igor
21.10.2017
16:21:06
Пример описания 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

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

Andrew
21.10.2017
16:29:26

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

Andrew
21.10.2017
16:34:35

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

Igor
21.10.2017
16:38:01

Andrew
21.10.2017
16:40:06

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

Jon
21.10.2017
16:43:15

Google

Andrew
21.10.2017
16:44:39

Igor
21.10.2017
16:47:37

Jon
21.10.2017
17:09:00

Igor
21.10.2017
17:22:26

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, типа кнопок?

AxiS
21.10.2017
23:28:57

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

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

anton
22.10.2017
08:33:50

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

Roman
22.10.2017
08:42:27

anton
22.10.2017
08:46:23

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

double
22.10.2017
14:48:59
спасибо огромное

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

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

AxiS
22.10.2017
15:15:59

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

Aliaksandr
22.10.2017
16:18:22

Irina
22.10.2017
16:19:53

/dev/null
23.10.2017
00:38:32

Slava
23.10.2017
02:30:26

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

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

Alexander
23.10.2017
06:55:11

Максим
23.10.2017
06:55:40

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