Получи случайную криптовалюту за регистрацию!

Я - программист!

Логотип телеграм канала @it_programmist — Я - программист! Я
Логотип телеграм канала @it_programmist — Я - программист!
Адрес канала: @it_programmist
Категории: Без категории
Язык: Русский
Количество подписчиков: 193
Описание канала:

Полезные материалы, интересные кейсы, реальные истории от реального программиста. Подписывайся, тут интересно.
@progersclub - Клуб программистов
@shogenov - на связи

Рейтинги и Отзывы

5.00

2 отзыва

Оценить канал it_programmist и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

2

4 звезд

0

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения

2020-01-29 13:25:27 git push origin master -f
333 views10:25
Открыть/Комментировать
2020-01-28 09:42:08 Не мутируйте объекты

Во фронтентд-разработке(с использованием реактивных фреймворков в частности) плохой практикой является мутирование объекта.
То есть вместо того, чтобы изменять какой-то объект, следует сделать на его основе новый и, в процессе создания, изменять элементы.

Для этого хорошо подходят такие функции как map, filter или оператор …

Несколько примеров.

// возвращает вместо всего объекта только значение определённого поля
const newObject = object.map(item => item.field);

// оставляет только элементы, у которых поле field равно someValue
const newObject = object.filter(item => item.field === someValue);

Но чаще всего нам нужно изменить какое-то одно свойство и вместо того, что писать такую конструкцию

let newObject = object; // мы же помним, что мутировать текущий объект плохо?
newObject['neededFiled'] = 'newValue';
return newObject;

Можно сделать короче и красивее

return { …object, neededFiled: 'newValue'};

Элегантный способ удалить поле объекта, не мутируя исходный объект.

const myObject = {
a: 1,
b: 2,
c: 3
};
const { a, ...noA } = myObject;
console.log(noA); // => { b: 2, c: 3 }

Оператор rest(…) сохранит в константу noA все оставшиеся элементы, которые мы явно не выделили.
Вот такой небольшой лайфхак.

#js #лайфхак
663 viewsedited  06:42
Открыть/Комментировать
2020-01-01 11:11:50 Не программировал с прошлого года. Вероятно, по фронтенду я безнадежно отстал.
520 views08:11
Открыть/Комментировать
2020-01-01 00:29:54 year++;
524 views21:29
Открыть/Комментировать
2019-12-25 13:00:54 4. Круглые крышки не подходят к квадратным коробкам

Делая что-то, делаешь это хорошо, если чувствуешь себя расслабленно и делаешь это непринужденно. Вся наша жизнь полна обратной связи, пусть и не всегда в явном виде.

Ощущения нажатия клавиши клавиатуры, небольшая вибрация телефона при нажатии на иконку или желудок, который посчитал, что ты съел слишком много острого. Все это своего рода обратная связь.

Обратная связь дает нам знать, когда все идет хорошо, нормально или очень-очень плохо. Мы все знаем это ворчливое ощущение в районе желудка, которое говорит нам, что нам нужно изменить базу данных для лучшей работы нашего приложения.
Вместо того, чтобы писать кучу хрупкого кода для трансформации данных, ты можешь сделать это внутри базы данных, просто использовав другую БД, изменив схему или используя ORM или PDO.
Или к примеру, ты понимаешь, что у тебя все не очень гладко в рабочих отношениях с коллегами. Это не потому что ты не любишь их или они не любят тебя. Просто не каждый может работать с каждым. Не мучай себя. Найди лучшее решение и вперед.

Поговори с менеджером об смене команды/проекта, найди ORM для работы. Прекрати делать то, что делаешь и сделай то, что сделает это лёгким.


5. Используй подходящие инструменты для работы

Не нужно сразу хватать джаву, потому что так завещали предки и вообще Java - это тру. Не нужно писать на C++ сайт-визитку.
Не нужно для простой консольной утилитки тащить C# и все его фреймворки.
Всему свой инструмент! Лучше всего использовать тот инструмент, который лучше подходит для конкретной проблемы и который ты лучше знаешь.

#selection #мысли
550 viewsedited  10:00
Открыть/Комментировать
2019-12-25 13:00:54 5 правил программиста

1. Монорепозиторий? Лучше не надо

Если ты не знаком с таким понятием как монорепозиторий, я постараюсь объяснить: вместо использования множества репозиториев для своих приложений, библиотек, компонентов, монорепозиторий предполагает размешать все в одном единственном репозитории.

Это помогает сделать разработку множества проектов проще, но это имеет свою цену: ты должен использовать subversion, ты не можешь использовать Git. Git, при всей своей гибкости и универсальности, не поддерживает так называемые sparse checkouts как subversion.

Sparse checkouts позволяет делать чекаут от отдельных директорий огромного дерева директорий. Это дает возможность командам работать над отдельными частями такого дерева. Git же чекаутит целиком такое дерево.
Git предполагает разделение отдельных частей приложения на отдельные репозитории.

У монорепозитория есть и ряд других недостатков:
- долго скачивать и разворачивать
- в история коммитов будет целый роман c несколькими сюжетными линиями
- сильная связанность и проблема масштабируемость.

Да, эти проблемы решаются и у монорепозиториев есть плюсы (не спроста же их используют Google, Facebook, Twitter), но это отдельная история. В общем случае: лучше не надо.

2. Сначала проблема - потом решение

У каждого из нас есть технологии, которыми мы любим пользоваться: Redis, MySQL и т п. Это совершенно нормально и здорово иметь предпочтения.

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

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

Это очень странная, но при том очень распространенная, ситуация в корпорациях, когда группа архитекторов или, что еще хуже, просто руководство является повелителями простых программистов, которые на самом деле пишут код.

Часто, в компании принимается решение использовать определенную технологию или продукт - Kubernetis, AWS или еще что-то - без полного понимания проблемы в этой самой компании, которую эти технологии призваны решить.

Особенно страшно, когда технологию внедряют без понимания зачем, и не имея разработчиков, которые бы работали с ней или выстраивали приложения вокруг этой технологии.

Необходимо сначала понимать проблему, до того как начинать использовать какой-либо инструмент.

3. Задавай вопросы.

Я не устану это повторять из раза в раз.
Это звучит очень просто, очевидно и по-детски. Но для многих это оказывается очень сложным. Не понял что-то? Задавай вопросы. Хочешь знать почему принято именно это решение? Задавай вопросы. Хочешь понимать куда движется проект? Задавай вопросы.

Даже не для того, чтобы получить нужный ответ. Часто ты не получишь ответа вовсе. Но если ты не будешь задавать вопросы, ты никогда и не узнаешь об этом.

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

Вопросы “Прости, а не можешь объяснить почему тут так” это не только невероятно эффективный способ понять нужные вещи, но и борьба с “так исторически сложилось”.

Ты будешь удивлён, как много организаций делает что-то “по историческим причинам” или просто “потому что”. Обычно это происходит потому, что однажды кто-то так сделал, а после этого никто не потрудился это исправить.

Задавая вопросы, бросая вызов “исторически сложившимся” вещам и докапываясь до истины мы делаем лучше нашу команду, проекты, самих себя и свою жизнь лучше. Часто просто задавая вопросы можно выкинуть целые слои из приложения без особых проблем.
339 views10:00
Открыть/Комментировать
2019-12-23 07:52:56 Не люблю политику, но тут в статье крутой кейс, как с помощью javascript в браузере измерять загрязнение воздуха!!!
https://habr.com/ru/post/481488/

#юмор
295 views04:52
Открыть/Комментировать
2019-12-18 17:55:04 Выигрывать в команде, проигрывать одному

Взаимоотношения с коллегами - это очень важно. Так же важно как и взаимоотношения с начальством. Нужно выстроить и поддерживать хорошие рабочие отношения с коллегами. Особенно, если ты senior или выше. Тебе необходимо признавать успехи своих коллег, когда они делают что-то невероятное. И ты должен брать ответственность за ошибки, потому что ошибки будут. Никакой менеджер не будет винить тебя в то, что ты совершил ошибку (хороший менеджер не будет), все мы люди, очень плохо не учиться на этой ошибке. Если ты совершил промах, возьми на себя ответственность за это, запомни это и больше никогда не повторяй эту ошибку. Худшая вещь, которую ты можешь сделать, это винить в своих ошибках других членов своей команды.

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

Избегать токсичных рабочих мест

В работе разработчика нет ничего важнее собственного благополучия. Да, именно так:

В работе разработчика нет ничего важнее собственного благополучия

Ни босс, ни коллеги, ни кусок кода, ни ценности компании не могут быть важнее тебя самого. Это совершенно нормально сменить работу, чтобы избавить себя от неприятной рабочей обстановки, если нет возможности сделать это внутри компании. Найди новую работу, напиши заявление и уходи на новую работу.

У меня была работа, при устройстве на которую мне обещали новейший стэк, полный карт-бланш в выборе технологий и проектировании структуры, адекватное руководство и т. п. На самом деле, было сложно согласовать установку последней версии языка, когда повсеместно а фирме использовался язык версии семилетней давности. Быстрые костыли были основным методом решения задач и приветствовались в отличие от мыслей о хотя бы легком рефакторинге. Задачи и “хотелки” летели от всех подряд: руководства, директоров, руководителей и просто работников других отделов. Несколько часов можно было провести за бессмысленным разговором в скайпе с парой тройкой людей, которые сами не понимают, что от тебя хотят. Указы начальства касательно будущих фич не обсуждались, даже некоторые предложения по корректировками отметаюсь на самом первом уровне.
Я проработал там 4 месяца. И это, наверное, даже долго. Без угрызений совести сменил работу.
Мораль проста - не надо себя мучать, не нравится - уходи.

Если ты не хочешь делать на будущей работе какие-то вещи не указывай их в резюме

Это частая ошибка которую я допускаю и, скорее всего, допущу снова.
Когда ты ищешь работу, очевидно, что ты хочешь сделать свое резюме как можно привлекательнее. Как? Включаешь туда все-все вещи, с которыми когда-то имел дело. Каждую технологию, каждый язык, на котором написал хотя бы ‘’hello world”. А потом всегда удивляешься, когда тебя назначают “главным” по технологии, которая тебе не нравится.
Обычно это происходит по следующему сценарию:

“Ты указал в резюме, что имеешь большой опыт в jquery. Теперь ты будешь поддерживать весь наш jquery легаси код”.

Вот ты и застрял на позиции jquery-мэна.

Как этого избежать? Относиться к резюме не только как к списку прошлых мест работы и технологий, но как к помощнику в формировании следующего шага в карьере. Твое резюме может устанавливает границы, в пределах которых люди будут нанимать тебя. Если ты сделаешь эти границы такими широким как только можно, то ты, безусловно, получишь много предложений, но, скорее, всего, большая часть из них будет на позиции, на которых ты работать не захочешь. Сужение фокуса твоего резюме до технологий ,которые ты действительно хорошо знаешь и с которыми хотел бы работать, гарантирует, что ты не окажешься в положении, которое тебе не нравится и требует поиска нового работы.



Я что-то упустил? Есть еще какие-то вещи, которые каждый разработчик должен обязательно делать? Делитесь в @progersclub .

#мысли
304 views14:55
Открыть/Комментировать
2019-12-11 14:20:46 Читать эти долбанные Логи/Мануалы/Документацию

Тебе нужно читать то, что тебе дают!
Любое приложение, библиотека, модуль, язык или что-то еще ,скорее всего, имеют достаточную документацию. Даже если это что-то до безобразия простое, например простейшее API, тебе нужно сделать это.
Вместо того, чтобы часами гоняться за фантомной проблемой, перкомпилируя код, пересобирая бандлы, обновляя систему, нужно открыть и прочитать логи/сообщение об ошибке и документацию.

Логи, сообщения ошибок и документация пишутся именно для того, чтобы избежать проблем или, по крайней мере, скорее их решить.

Отвлекаться от работы.

Нет такого правила всё время сидеть за столом(фирмы, использующие трекеры, горите в аду). Если у тебя что-то не получается, ты в чем-то запутался или просто устал, если ты в буквальном смысле не прикован цепями к столу, то встань и прогуляйся. Сходи за кофе, придумай планы на выходные или напиши что-нибудь другу. Сделай что-то, что отвлечет тебя от работы. Человеческий мозг - странный орган, даже если в данный момент ты не думаешь о проблеме, мозг всё равно пытается решить её в фоновом режиме.
Часто потрясающие идеи приходят вовсе не на рабочем месте, а например в душе или в … кхм… в туалете, в общем, вне рабочего стола.
Это может звучать не очень логично, но мозг решает проблемы и в фоновом режиме: он всегда думает, всегда работает, так что дай ему время подумать и поработать.

Быть на связи

Я не говорю о том, чтобы быть онлайн 24/7 и по каждому чиху отвлекаться и отвечать. У команды должна быть возможность связаться с тобой. Не нужно следить за всеми менеджерами и соцсетями и отвлекать на каждое обновление. Оставь включенными только личные сообщения и упоминания в корпоративном мессенджере, я думаю, этого достаточно. Некоторые коллеги, могут этим злоупотреблять, беспокоя по “экстренному каналу“ по пустякам. Что ж, таким коллегам придется объяснить, что для таких вещей, есть, например таск-менджер.

#мысли

to be continued…
244 viewsedited  11:20
Открыть/Комментировать
2019-12-09 18:06:13 Быть упорным

Упорство - это , наверное, качество номер 1 для программиста. Каждый программист встречается с проблемами. Это часть работы и именно эта часть работы цениться выше всего. Нужно расти и становиться человеком, который может решить проблемы, которые другие не представляют как решать. Не важно, что это: проблема с кодом, с функциональностью или новая технология. Это не имеет никакого значения, просто сделай это. Во всём программировании нет никаких сакральных знаний, все решаемо и решается. Не нужны никакие специальные навыки или знания, просто упорство и желание решить проблему во что бы то ни стало.
Хочется сдаться? Именно в этот момент нужно проявить большее упорство и сделать это.
Решение проблемы, которая еще недавно казалось тебе нерешаемой, вызывает неимоверный кайф и состояние эйфории. Даже если причиной этой проблемы стал ты сам


Никогда не прекращать обучаться

Если ты хочешь расти как профессионал и чтобы зарплата тоже росла, нужно все время быть в процессе обучения, изучения нового.
Если не хочешь и счастлив быть разработчикам php5/JQuery, хорошо, каждый сам волен распоряжаться своей жизнью.
Но если у тебя есть хоть малейшая склонность двигаться вверх, ты должен быть готов учиться новым вещам. “Новыми вещами” могут быть новые языки программирования, технологии, подходы, методики и т п. Но лучше всего, чтобы эти новые вещи были каким-то образом связаны с твоим текущим стеком. К примеру, если программируешь на php/js/jquery изучи современный фреймворк react/angular/vue или посмотри в сторону reactphp

Это не только делает тебя более ценным для твоего нынешнего работодателя, но и дает тебе больше рычагов влияния при переговорах о компенсации и открывает больше возможностей, если ты решишь сменить работу.


Оспаривать устоявшиеся вещи и задавать “Тупые” вопросы

Я не имею ввиду, что надо всегда пытаться быть против того, что уже есть в проекте. Просто любимым вопросом должен стать ”Почему?”.
Нужно ставить под вопрос текущие решения. Это может быть очень сложно и коллеги не будут тебя за это сильно любить, но инновации требуют остановиться и спросить “Почему?”.
Нет ничего хорошего в том, чтобы пытаться сохранить старые разработки или технологии, особенно, если они приносят проблемы. Либо вы потеряете свою основную цель и целью станет поддержание жизнеспособности того, что уже есть, либо стоить сделать шаг назад, выяснить почему все так сложилось и есть лучший способ сделать это.

Лучший путь для этого - это “тупые вопросы”. Не надо приходить и говорить “почему мы делаем так?”. Это может показаться грубым и, что хуже, непонятным.
Вместо этого лучше спросить “А есть какая-то особая причина, почему мы используем X для этой части программы?”. Смысл тот же, но это звучит понятнее показывает верное направление.

Продолжение этой мысли совсем скоро!
#мысли
233 viewsedited  15:06
Открыть/Комментировать