
The
07.05.2018
16:17:57

Daniel
07.05.2018
16:18:17

Pawel
07.05.2018
16:18:28
недавно обнаружил, что в vscode c плагином микрософта - внезапно! - можно жить, и весьма комфортно

Daniel
07.05.2018
16:18:38
но сами регулярки - да, помедленнее

Google

Daniel
07.05.2018
16:18:50
зато не зависят от объема входных данных

Nazary
07.05.2018
16:19:01

Daniel
07.05.2018
16:19:20
в js же те же pcre

The
07.05.2018
16:19:33
https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/regexredux.html
вот в кратце, если про синтетику

Fastumkruk ✅
07.05.2018
16:31:37

The
07.05.2018
16:34:30
помоему, все лучше liteide

Александр
07.05.2018
17:25:45
Сегодня днем мне посоветовали storm заместо sqlite, вообщем результат такой на 5200 идентичных данных размер базы в 8 раз больше у storm однако скорость чтения на треть выше
Это я так мало ли кому интересно
Идентичных записей*

Pawel
07.05.2018
17:31:53
скорость чтения в sqlite - это такая штука, которая зависит от дохера чего, нет смысла говорить о ней как о коне в вакууме

Diasko
07.05.2018
17:33:22
Diasko:
Народ подскажите на счёт либо для клиента WSDL/SOAP, на гидхабе нашел надо тестить, может кто работает с ними

tsov
07.05.2018
17:40:52
есть ли кодогенератор для монги?

Google

Alexander
07.05.2018
17:52:42


Altai
07.05.2018
19:39:02
https://blog.golang.org/package-names
Все другие статьи, которые затрагивают правила хорошего тона именования пактов, в целом тоже сводятся к тому, что нужно выбирать короткие лаконичные имена, не использовать under_score или camelCase.
Да, вроде бы и всё верно, но до сих пор никак не могу смириться с этим положением дел. Мне одному так сложно порой придумывать имена, которые должны в одно слово действительно передавать всю суть пакета?
В вопосах по этой теме на stackoverflow, все отвечающие гордо объясняют, что, мол, если у вас не выходит назвать лаконично одним словом пакет, то у вас плохая архитектура и вообще...
Вот только ощущение, что никто из них не пробовал поддерживать проекты, где количество пакетов исчисляется не десятками.
Вот, скажем, в книжке Донована и Кернигана The Go Programming Langugage, в одном из примеров, пакет именуют "tempconv".
Говорится, что temperature - слишком длинное имя, не дающее понимание, что делает пакет. //Ок, пожалуй, так и есть
Также объясняется, что "temp" всё-таки очень плохой вариант: слишком короткое и неочевидное имя. //Да неужели???
Имена из рода ~temperatureConverter даже не рассматриваются (оно и понятно, camelCase "нельзя", а без него, полностью нижним регистром, конечно же, будет нечитабельно).
В итоге останавливаются на tempconv. Мол, и ясно что делает пакет, и короткое имя.
Да, в рамках примера всё круто, и сперва кажется, что tempconv - отличное имя для пакета. Вот только вся эта лаконичность с лихвой аукается в проектах (или группе проектов), где количество пакетов близится к сотне.
И тогда хочется иметь старые, добрые, "тупые java-имена" и "плохую архитектуру".
Довольно часто появляются мысли о том, как удобно было бы вот сейчас взять и таким-то camelCase-именем озаглавить пакет, их не отогнать просто.
Понимаю, что underscore используется длля сборки под определенную архитектуру, ОС. Хорошо, нет проблем.
Но дико, неистово интересно, что именно подтолкнуло к запрещению camelCase-имен? Технически, как понимаю, никаких преград ведь не было?


Dmitry
07.05.2018
19:43:36
стремление к единообразию наверно

Max
07.05.2018
19:43:45
единоужасию


Dmitry
07.05.2018
19:48:24
Вот, скажем, в книжке Донована и Кернигана The Go Programming Langugage, в одном из примеров, пакет именуют "tempconv".
Говорится, что temperature - слишком длинное имя, не дающее понимание, что делает пакет. //Ок, пожалуй, так и есть
Также объясняется, что "temp" всё-таки очень плохой вариант: слишком короткое и неочевидное имя. //Да неужели???
Имена из рода ~temperatureConverter даже не рассматриваются (оно и понятно, camelCase "нельзя", а без него, полностью нижним регистром, конечно же, будет нечитабельно).
В итоге останавливаются на tempconv. Мол, и ясно что делает пакет, и короткое имя.
Да, в рамках примера всё круто, и сперва кажется, что tempconv - отличное имя для пакета. Вот только вся эта лаконичность с лихвой аукается в проектах (или группе проектов), где количество пакетов близится к сотне.
И тогда хочется иметь старые, добрые, "тупые java-имена" и "плохую архитектуру".
а можно увидеть примеры пакетов где ты не можешь выбрать название ?


Vladimir
07.05.2018
19:50:11
Вот, скажем, в книжке Донована и Кернигана The Go Programming Langugage, в одном из примеров, пакет именуют "tempconv".
Говорится, что temperature - слишком длинное имя, не дающее понимание, что делает пакет. //Ок, пожалуй, так и есть
Также объясняется, что "temp" всё-таки очень плохой вариант: слишком короткое и неочевидное имя. //Да неужели???
Имена из рода ~temperatureConverter даже не рассматриваются (оно и понятно, camelCase "нельзя", а без него, полностью нижним регистром, конечно же, будет нечитабельно).
В итоге останавливаются на tempconv. Мол, и ясно что делает пакет, и короткое имя.
Да, в рамках примера всё круто, и сперва кажется, что tempconv - отличное имя для пакета. Вот только вся эта лаконичность с лихвой аукается в проектах (или группе проектов), где количество пакетов близится к сотне.
И тогда хочется иметь старые, добрые, "тупые java-имена" и "плохую архитектуру".
AbstractUserInfromationInterfaceFactoryFactory?


Altai
07.05.2018
19:51:02
Да так-то называю "правильно", но всё-таки порой кажется, что куда лучше называть где-то camelCase, так как без сокращений всё-таки меньше вероятность как-то не так понять что делает пакет, меньше искать нужный пакет нужно.

Dmitry
07.05.2018
19:51:38

Vladimir
07.05.2018
19:51:42

Dmitry
07.05.2018
19:54:45
uinfofty
следующий

Altai
07.05.2018
20:00:00
Да тот же tempconv из книжки. Никогда нельзя случано не так понять, что делает пакет "temperatureConverter", а tempconv - можно воспринять иначе, сложнее найти в списке пакетов нужный глазами.
Особенно это всё проявляется с именами, где есть созвучие или скрытый другой смысл (вроде tmp, temp).
Скажем, вот сейчас натыкался на сервис для генерации/редактирования определенного вида моков для API.
Пакет с именем "mock" можно воспринять не совсем так, как нужно. //Думаю, всем понятно.
В итоге mockgen или mocked вроде как "правильные" имена. Но мне вот не жалко было бы дописать 4 символа, чтобы получить предельно понятное всем, сразу, в любом контексте "mockEditor".

Sergey
07.05.2018
20:01:07
а почему бы не snake_case?

Altai
07.05.2018
20:03:33
а почему бы не snake_case?
Читайте первые сообщения.
> https://blog.golang.org/package-names
Ни camelCase, ни snake_case не рекомендуются. Но snake_case хотя бы понятно почему (используются суффиксы определенные в именах, вроде _linux, _arm64 и так далее, для сборки под соответствующую платформу), а вот с camelCase что мешает - неясно.


Dmitry
07.05.2018
20:04:53
Да тот же tempconv из книжки. Никогда нельзя случано не так понять, что делает пакет "temperatureConverter", а tempconv - можно воспринять иначе, сложнее найти в списке пакетов нужный глазами.
Особенно это всё проявляется с именами, где есть созвучие или скрытый другой смысл (вроде tmp, temp).
Скажем, вот сейчас натыкался на сервис для генерации/редактирования определенного вида моков для API.
Пакет с именем "mock" можно воспринять не совсем так, как нужно. //Думаю, всем понятно.
В итоге mockgen или mocked вроде как "правильные" имена. Но мне вот не жалко было бы дописать 4 символа, чтобы получить предельно понятное всем, сразу, в любом контексте "mockEditor".
ну tempconv мне тоже кажется неудачным


Sergey
07.05.2018
20:06:09
> Ни camelCase, ни snake_case не рекомендуются
да это-то понятно, я просто предлагаю
> суффиксы определенные в именах, вроде _linux, _arm64
(да, я знаю, что это так, но..) звучит сомнительно, как будто не смогли другого способа резолвить платформы
> а вот с camelCase что мешает - неясно.
очевидно же! — слишком похоже на с++

Google

Altai
07.05.2018
20:06:51
Ну, по-моему тут без разницы, camelCase или snake_case. Лишь бы можно было хотя бы два слова полных поставить рядом. А ни то ни другое - нельзя. И куда податься? :(
И если у запрета snake_case есть ещё какая-то техническая причина, то с запретом camelCase всё выглядит так, будто там причина - религиозная.

Dmitry
07.05.2018
20:12:56
If you cannot avoid a bad name, it is very likely that there is a problem with your overall structure and code organization.

Sergey
07.05.2018
20:14:55

Dmitry
07.05.2018
20:17:03

Sergey
07.05.2018
20:17:26
я знал, что ты спросишь!

Nurzhan
07.05.2018
20:17:48
Временно сворачивает?

Sergey
07.05.2018
20:17:57
а package types не напрягает, не? :)

Sergey
07.05.2018
20:18:08
но допустим пакет будет называться temporal_convolution и будет вычислять эту темпоральную конволюцию

Dmitry
07.05.2018
20:19:02

Sergey
07.05.2018
20:19:20
ммм, как классно читается

Nurzhan
07.05.2018
20:19:54

Sergey
07.05.2018
20:21:08

Dmitry
07.05.2018
20:24:44
придумывая абстрактные имена вы получаете абстрактные короткие имена
давайте рассматривать реальные примеры

Sergey
07.05.2018
20:29:06

Altai
07.05.2018
20:32:34

Dmitry
07.05.2018
20:35:29

Altai
07.05.2018
20:37:04
//Ну, если быть точным, mockgen - пакет, mocked - редактор, приложуха отдельная.

Google

Dmitry
07.05.2018
20:37:58
ну он имеет отношение к мокам или это рандомное название ?

Altai
07.05.2018
20:38:49
Всё имеет. Ну, там mockgen/mocked нормальные названия, просто к тому, что два слова читаются и воспринимаются легче одного с сокращениями. Особенно когда кто-то со стороны заглядывает.
Кстати, по поводу именования директорий: её имя же всегда совпадает в итоге с именем пакета. Делать другие - сопоставления нужно тогда держать в голове. Делать те же - неудобно просматривать структуры проектов, больно уж лаконично могут называться некоторые.

Dmitry
07.05.2018
20:41:35
окей я понял. но описание того что делает пакет полностью в имени - это не есть гуд. для этого есть документация

Altai
07.05.2018
20:42:03
Насколько хорошо массовое разъезжание между именами пакетов и именами директорий иметь? :)

Dmitry
07.05.2018
20:42:05
тебе нужно имя которое ассоциировалось бы с тем что делает пакет а не полностью описывает его
думаю это очеь плохо

Altai
07.05.2018
20:43:12
Просто если в коде ещё норммально mockgen использовать, то тому, кто просматривает структуры репозиториев явно удобнее понять, что к чему, по именам директорий.
Но начать делать разные - плохо, согласен. Потому что слой сопоставления имен директорий с именами пакетов нужно в голове держать разработчикам.

Dmitry
07.05.2018
20:43:19
людям придется держать в памяти и названия директорий и названия пакетов

Admin
ERROR: S client not available

Altai
07.05.2018
20:44:16
Всё так. Но вот куда податься-то теперь?
БТВ, довольно часто встречаются большие проекты, которые забивают на всё и используют несколько слов в именах директорий. После этого как-то и самому не стыдно станвоится. ;)

Sergey
07.05.2018
20:45:26

Dmitry
07.05.2018
20:46:58
ed не настолько популярен чтобы путать с ним
и что то мне подсказывает что слово editor в пакете не есть правильно. это больше название для готового приложения а не для пакета

Altai
07.05.2018
20:50:36
Всё так, я же писал выше, ed - собирается в приложуху, а переиспользуемый пакет, он с gen.
Но если использовать именование директорий в стиле пакетов, там та же проблема. Если нет - проблемы нет, но уже и соблазн на какие-то пакеты "неправильные" имена директорий распространить. Так и происходит в итоге. :)

Dmitry
07.05.2018
20:52:16
ну для готового приложения мне кажежтся можно использовать и MockEditor
ага, теперь я понял
да есть неясность в этом плане.
но вот смотри https://github.com/golang-standards/project-layout/tree/master/cmd здесь запросто используют подчеркивания

Google

Nazary
07.05.2018
20:55:09
routes.PathPrefix("/dist").Handler(http.FileServer(http.Dir(CONF.WorkDir + "status/")))
ребзя
есть такой движ
как сделать что бы файл с status/dist/build.js был доступен по assets228/build.js

Dmitry
07.05.2018
20:56:37
как видишь все юзают _ в названии директорий исполняемых файлов. так что mock_edtor это хорошее название

Altai
07.05.2018
21:03:30

Dmitry
07.05.2018
21:04:34
наверняка стоит избегать - в названии - потому что может быть принято за флаг

Altai
07.05.2018
21:06:47
Не, за флаг не будет принято. :)

Dmitry
07.05.2018
21:08:15
почему нет? при быстром взгляде трудно заметить есть там пробел перед дефисом или нет .
сравни (influx-tools) и (influx -tools) при взгляде со стороны пользователя

Sergey
07.05.2018
21:09:58
пользователь не знает про флаги

Altai
07.05.2018
21:10:12
Просто есть пакеты, где люди используют и camelCase, видел, где делали подчеркиванием, где-то дефисом, но везде что-то одно. А Influx отличается просто тем, что тут несколько вариантов сразу.
Будто это не вопрос предпочтения, а глубинный смысл есть, который я не уловил пока.

Dmitry
07.05.2018
21:10:28

Sergey
07.05.2018
21:10:48
и?
он не будет воспринимать, есть там пробел, или нет
ему пофигу

Alexandr
07.05.2018
21:10:49
коллегия,
1) что думаете про фреймворки? https://blog.usejournal.com/top-6-web-frameworks-for-go-as-of-2017-23270e059c4b
2) юзаете ли какие-либо не-веб фреймворки?

Sergey
07.05.2018
21:11:13

Dmitry
07.05.2018
21:11:32
пакет там main

Altai
07.05.2018
21:12:30
Понимаю, но всё равно должны же быть соглашения какие-то, с учетом, что это в той же иерархии вместе с пакетами лежит.

Sergey
07.05.2018
21:12:47

Dmitry
07.05.2018
21:12:48