?

Log in

No account? Create an account

Previous Entry | Next Entry

Jun. 6th, 2019

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



Работать же до сих пор интересно. Правда, я немного освоилась, и теперь меня раздражают некоторые вещи, которые делают коллеги. Например, выбор языка программирования. Изначально, пару лет назад, в команде были только два человека, и один решил писать код на Го, а другой был менеджером и не писал код вообще. Потом в команду пришёл ещё один человек, и он тоже стал писать на Го, но быстро ушёл. Потом пришла я, и быстро выучила Го c нуля, продолжая скрипты для собственного пользования писать на Питоне, моём любимом языке. Потом пришёл ещё один человек, который тоже раньше писал на Питоне, но выучил Го, потому что на нём писали тот первый коллега и я. Сейчас наняли ещё одного, который любит Питон, но, видимо, тоже будет вынужден писать на Го, потому что.. ну, все же на нём пишут.

Я, правда, продолжаю некоторые вещи писать на Питоне, потому что код тогда в два раза короче, и многие библиотеки гораздо лучше, чем аналогичные для Го. Первому коллеге это не нравится, потому что если вдруг меня собьёт машина, то кто тогда будет разбирать мой код. Ну не те же два человека в команде, которые знают язык куда лучше меня, в самом-то деле. В общем, меня раздражает, что все пишут на одном языке, который не для всех задач подходит, потому что как-то так завелось с самого начала.

У меня вообще не очень хорошо получается работать в команде. Как пишу отдельное приложение, так всё быстро идёт и без особых проблем. А как надо интегрировать код с чужим, так на разбор, как вообще они всё это запускают и что в каком репозитории, уходит больше времени, чем на написание кода.

Comments

( 34 comments — Leave a comment )
lj_frank_bot
Jun. 6th, 2019 08:24 pm (UTC)
Здравствуйте!

Система категоризации Живого Журнала посчитала, что вашу запись можно отнести к категории: Работа.

Если вы считаете, что система ошиблась — напишите об этом в ответе на этот комментарий. Ваша обратная связь поможет сделать систему точнее.

Фрэнк,

команда ЖЖ
move2winnipeg
Jun. 6th, 2019 10:44 pm (UTC)
Я как-то работал в продажах, поэтому понимаю их язык. На самом деле, они говорят интересные и полезные вещи, интересные для своих. Мне сейчас приходится на всякие встречи ходить, и я начинаю сильно скучать, когда речь заходит на эти темы. Хорошо, что у нас в команде есть человек, который этим занимается, а я сосредоточился на написании кода и обучении моделей. Просто отключаюсь в такие моменты.
А по поводу языка, это вечная боль. Мой первый язык был R, он специально сделан для работы с данными. В питоне для этого приходится грузить панды и нумпай, код выходит длиннее и корявее. Я просто смирился и перестал париться по этому поводу. Голанг я руками не трогал, но говорят, что он быстрый и надёжный. В некоторых конторах вообще на лиспе пишут и не жужжат :)
old_world_blues
Jun. 7th, 2019 06:40 pm (UTC)
Но ты ведь не стал бы на R писать, например, фронтэнд? Го неплохой язык, но обладает всеми недостатками компилируемых языков. Работать с json файлами в нём неудобно, например. На Питоне это одна строка, а в Го нужно создавать структуры, передающие структуру файла.
gutes_omen
Jun. 7th, 2019 10:22 pm (UTC)
Извините, а вы могли бы чуть подробнее это раскрыть? То есть, каким образом в питоне можно одной строчкой получить доступ к жсону, какие структуры данных нужны для этого в го, и почему это следует именно из того, что го - компилируемый язык?
move2winnipeg
Jun. 8th, 2019 02:24 am (UTC)
import json

# some JSON:
x = '{ "name":"John", "age":30, "city":"New York"}'

# parse x:
y = json.loads(x)

# the result is a Python dictionary:
print(y["age"])

Тут ещё фишка в том, что джейсон практически нативный формат для питона, работает чуть ли не быстрее, чем в самом джаваскрипте.
old_world_blues
Jun. 8th, 2019 09:46 am (UTC)
Я неточно выразилась, имела в виду, что у большинства компилируемых языков типизация статическая, у Го в том числе. Выше есть пример, как работать с json в Питоне, а вот в Го надо как-то так https://eager.io/blog/go-and-json/
(no subject) - gutes_omen - Jun. 9th, 2019 10:13 pm (UTC) - Expand
move2winnipeg
Jun. 8th, 2019 02:30 am (UTC)
на R писать, например, фронтэнд?

Не хотелось бы :)
В R можно любой код запихать, хоть на С, или есть пакеты на любой случай жизни, но зачем?

структуры, передающие структуру файла

Я сейчас страшную вещь скажу, за которую меня проклянёт любой тру девелопер, но я не люблю строго типизированные языки. Жизнь коротка, а я уже слишком стар, чтобы тратить на это время ;)
Я знаю, что это днище, но у меня пока всё работает.
old_world_blues
Jun. 8th, 2019 09:57 am (UTC)
Вот в том и дело, что незачем. Я потому не люблю писать на каком-то языке, когда то же самое на другом можно сделать в два раза проще.

А во многих случаях удобство разработки важнее скорости выполнения программы, особенно если это какой-нибудь джоб, который запускается раз в неделю. Тут нет разницы, за минуту он выполнится или за две.
(no subject) - move2winnipeg - Jun. 8th, 2019 10:56 pm (UTC) - Expand
gutes_omen
Jun. 9th, 2019 08:59 am (UTC)
Вот я не тру девелопер, так что не могу вас проклянуть, тем более что понятия не имею, как писать на не строго типизированном языке. Это зависит, наверное, от того, что за задачи. Например, С++ ведь не строго типизированный, там можно получить объект в виде поинтера, насколько я понимаю, и потом парзить его лоу-левел. То есть там думать надо больше, чем если строго типизированный. А если вот действительно пример на питоне, который вы привели, то там получается список который можно читать по ключам. Но для сложных вещей это не подойдет, мне кажется, по перформансу, по стабильности работы программы.

"Жизнь коротка, а я уже слишком стар, чтобы тратить на это время ;) " простите за нескромный вопрос, а сколько вам лет?
(no subject) - move2winnipeg - Jun. 10th, 2019 01:20 am (UTC) - Expand
gnome_wanderer
Jun. 9th, 2019 12:18 pm (UTC)
D Golang больше времени распарсить JSON, но код получается куда более поддерживаемый и предсказуемый из-за строгой типизации.
Вообще всё зависит от задачи, язык программирования это не более чем инструмент, нужно брать тот что подходит для конкретной задачи по объективным причинам.

Мне кстати Python и вообще интерпретируемые языки не нравятся в больших проектах. Одно дело скрипт автоматизации, но другое когда это модуль в системе.
racepilot
Jun. 9th, 2019 04:28 am (UTC)
С бизнес-языком - пока сам не начал в это влезать, тоже не понимал. Сейчас наоборот - могу объяснить концепции своим бойцам понятным языком.

А насчет на чем писать... У меня простой критерий - подходит под задачу или нет? Поэтому иногда в проекте бывает редкий зоопарк. Сам, как олдскульщик, обожаю писать на чистом C.

А по-хипстерски гнаться за модой - это дно-днище. Руби, например, для большинства задач - полный алес. Но особенно меня поразил серверный NodeJS - это когда хочется потратить на сервера в 10 раз больше, чем нужно. Больше у него достоинств нет.
gnome_wanderer
Jun. 9th, 2019 12:23 pm (UTC)
Смотря что писать на NodeJS, если это аторизация по токенам и монгуст для монго, плюс в контейнере гденибудь завернутое в Kubernetes, то это простой и дешевый вариант как в разработке так и поддержке. Собственно для подобных задач он и создавался, минимум сложной логики, по сути библиотека для создания API.

К томуже часто NodeJS используется как gateway между фронтом и бэком. В таком формате также это не высокие расходы, но легко контролируемый и разворачиваемый API.
racepilot
Jun. 9th, 2019 01:21 pm (UTC)
Какой отличный пример набора хипсторских мантр, с последующим распилом инвесторского бабла и пшиком на выходе!

Ну, про Монго и ее место (подсказываю - у параши, она ни за чем, кроме траты ресурсов не нужна - всегда есть варианты лучше) - я отдельно посмеялся.

Вот что тут верного - это то, что SNJ создавался для мальчиков-зайчиков, которые ничего сложнее фронт-энда на своих маках под смузи не делали. Им просто, а то, что там двойная интерпретация в исполняемый код - их это не волнует, папа купит много серверов. Зато просто. Контролируемо. Угу.

Даже с Питоном хоть получше, он отлично подходит либы гонять (зачастую, кстати, C-шные) или нейросетки пасти. Но и то - если мы говорим про hi-load или IoT - два раза подумаешь, и, скорее всего, откажешься.

Вы еще скажите, что докер - это круто (подсказываю - когда работает, а не работает он почти всегда и на ровном месте, попробуйте, например, запустить его в WSL).
old_world_blues
Jun. 9th, 2019 01:30 pm (UTC)
А что не так с докером? Я пользуюсь регулярно, все мои приложения запускаю в Kubernetes. Конечно, контейнеры не всегда удобны, но с самими контейнерами проблем никогда не было, да и с докером на серверах - довольно редко.
(no subject) - racepilot - Jun. 9th, 2019 01:54 pm (UTC) - Expand
(no subject) - old_world_blues - Jun. 9th, 2019 02:09 pm (UTC) - Expand
(no subject) - racepilot - Jun. 9th, 2019 02:45 pm (UTC) - Expand
(no subject) - old_world_blues - Jun. 9th, 2019 03:04 pm (UTC) - Expand
(no subject) - racepilot - Jun. 9th, 2019 03:09 pm (UTC) - Expand
(no subject) - old_world_blues - Jun. 9th, 2019 03:18 pm (UTC) - Expand
(no subject) - racepilot - Jun. 9th, 2019 03:28 pm (UTC) - Expand
(no subject) - old_world_blues - Jun. 9th, 2019 03:45 pm (UTC) - Expand
gnome_wanderer
Jun. 9th, 2019 02:05 pm (UTC)
Ну и причем здесь хипстерские мантры?

Я работаю с проектами где авторизация NodeJS + Mongo в докере развернутая на Amazon EKS. В денежном выражении такое решение более чем оправдано. Монго быстро работает в режиме ключ-значение, ничего более для авторизации не нужно. Гибкая схема дает возможность менять профили пользователей по необходимости. JSON базы не создавались как замена реляционным, если что, и использовать их как таковые это не более чем непонимание инструмента которым пользуетесь.

И по поводу двойной интерпретации, выбы хоть почитали как JS нынче работает, конкретно про V8 байткод.

Или вы предлагаете API гейт на Java писать со всеми вытекающими требованиями к эластичности и отказоустойчивости, которую вам руками приедется делать?

Причем здесь вообще питон и библиотеки? У вас монолитный бэк? Вы вообще знаете понятие микросервисов и зачем они нужны? Или это тоже хипстерский бред?

Docker в WSL? В продашене это не используется, для разработки либо локально запускаются контейнеры либо под Minikube. Причем здесь вообще WSL? Вы разворачиваете контейнеры под инфраструктурой MS? Тогда нужно не с WSL извращаться а Docker EE использовать.


Edited at 2019-06-09 02:15 pm (UTC)
(no subject) - racepilot - Jun. 9th, 2019 02:48 pm (UTC) - Expand
(no subject) - gnome_wanderer - Jun. 9th, 2019 02:53 pm (UTC) - Expand
(no subject) - racepilot - Jun. 9th, 2019 03:02 pm (UTC) - Expand
(no subject) - gnome_wanderer - Jun. 9th, 2019 03:14 pm (UTC) - Expand
(no subject) - racepilot - Jun. 9th, 2019 03:37 pm (UTC) - Expand
(no subject) - gnome_wanderer - Jun. 9th, 2019 03:47 pm (UTC) - Expand
(no subject) - racepilot - Jun. 9th, 2019 04:00 pm (UTC) - Expand
(no subject) - gnome_wanderer - Jun. 9th, 2019 04:14 pm (UTC) - Expand
( 34 comments — Leave a comment )

Latest Month

October 2019
S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  

Посетители

Powered by LiveJournal.com