Pull to refresh
96
0
Dolovar @dolovar

SE

Send message

Покажи мне свой Git, и я скажу, кто ты

Reading time15 min
Views38K

Можно ли с помощью GitHub анализировать работу, не заглядывая в монитор сотрудника — без скриншотов и тайм-трекеров?

Я Александр Кириллов, технический директор компании Evrone. Больше 20 лет я посвятил разработке. В этой статье поделюсь с вами опытом, который собрал за время работы с распределенными командами. Расскажу о том, как, не нарушая приватность разработчиков, следить за качеством работы на проектах и отслеживать нежелательные паттерны с помощью метрик в Jira и Git.

Читать далее
Total votes 63: ↑53 and ↓10+53
Comments26

10 типичных «софтовых» ошибок на собеседовании

Reading time10 min
Views30K

Собеседование — одно из наиболее стрессовых событий в жизни. По статистике, IT-специалисты меняют работу раз в 2–3 года. И каждый раз приходится заново проходить интервью с HR, tech lead и будущими руководителями. Директор по ИТ-архитектуре Группы «Иннотех» Артём Головачев поделился секретами успешного прохождения собеседования.

Читать далее
Total votes 30: ↑19 and ↓11+12
Comments20

Как создать цепляющий креатив: техники креативного мышления + 20 примеров

Reading time10 min
Views15K

Слово креативность слышал каждый первый работник сферы IT и маркетинга. И ладно бы слышал! Часто эту самую креативность заставляют проявлять. Что делать, если ты не очень креативный человек? Как придумать идею, если ты никогда этим не занимался?

Сегодня расскажем о паре рабочих техник. Расскажем на примере креативов для таргета, во-первых, потому, что наша компания – про рекламу, а во-вторых, потому что картинки – это наглядно и весело.

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments6

Когда и как следует инвалидировать кэш

Reading time11 min
Views12K
image

В этой статье я опишу один способ, помогающий определить, когда инвалидировать записи кэша. В качестве примера я приведу специфическую конфигурацию, которая, тем не менее, должна получиться достаточно универсальной, а в заключении поста расскажу, как обобщить ее еще сильнее.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments2

58 байтов CSS, которые выглядят красиво почти где угодно

Reading time2 min
Views31K

При создании своего веб-сайта я хотел найти простой и разумный способ сделать его красивым на большинстве дисплеев. Для моих задач подошли следующие 58 байтов:

main {
  max-width: 38rem;
  padding: 2rem;
  margin: auto;
}

Давайте их разберём.
Читать дальше →
Total votes 44: ↑35 and ↓9+37
Comments11

Как структурировать проект на Golang: гайд от backend-разработчика

Reading time4 min
Views51K

Всем привет, меня зовут Авксентий, я backend-разработчик в inDriver. Думаю, каждый начинающий разработчик сталкивался с проблемой, как правильно выстроить архитектуру и структуру проекта. Ведь организация кода проекта — постоянно развивающаяся проблема, а следование стандартной структуре сохраняет чистоту кода и повышает производительность команды. 

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

Читать далее
Total votes 17: ↑15 and ↓2+15
Comments17

Рассказываем о пользе и вреде FullStack-фреймворков на примере Meteor.js

Reading time6 min
Views9.7K

В последнее время появляется довольно много Fullstack-фреймворков, они становятся популярны, их обсуждают.

Если посмотреть на результаты The State of JS 2021 в разделе «Библиотеки — Бэкенд-фреймворки», то минимум 5 из них (возможно, больше) будут как раз FullStack. Отсортировав бэкенд-фреймворки по заинтересованности, в самом верху списка мы снова увидим именно FullStack. Это понятно — они востребованы и лежат в основе разных проектов.

Однако на наш взгляд, область их применимости несколько ограничена. Почему — объясняем под катом.

Читать далее
Total votes 60: ↑55 and ↓5+56
Comments22

ПуFFIндуй. Волшебная палочка или грабли в PHP

Reading time7 min
Views7.9K

Привет, Хабр! 

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

Прежде чем приступить к изложению сути темы, расскажу историю из практики. Когда-то я занимался автоматизацией такого страшного явления как “аттестация педагогических работников”. Суть заключалась в том, чтобы разработать систему, куда доблестные труженики образования загрузят документы, подтверждающие успехи в работе - грамоты, дипломы учеников, и далее по списку. Стек: PHP+Python (если хотите знать, что тут делает Python - почитайте первую статью), JS (jQuery) на фронте. 

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

Читать далее
Total votes 21: ↑20 and ↓1+26
Comments10

[Golang] Ошибки, которые нельзя обработать

Reading time3 min
Views7.1K

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

Читать далее
Total votes 18: ↑13 and ↓5+9
Comments6

Инструменты CI/CD: GitLab CI

Reading time4 min
Views11K

На рынке доступно множество инструментов непрерывной интеграции и непрерывного развёртывания. Эти инструменты играют ведущую роль в координации и автоматизации работы на различных этапах CI/CD-пайплайна.

Мы пообщались с Александром Довнаром, Lead DevOps в Naviteq, и узнали, как безопасность проекта связана с выбором CI/CD-инструмента. Подробно остановились на том, что такое GitLab CI, кому он подходит и почему его стоит использовать. 

Читать далее
Total votes 14: ↑9 and ↓5+5
Comments9

Ересь

Reading time8 min
Views57K
image

Одна из самых удивительных вещей, свидетелем которых я был в своей жизни, — это возрождение концепции “ереси”.

В своей превосходной биографии Ньютона Ричард Уэстфолл пишет о моменте, когда Ньютона избрали членом Тринити-колледжа:

«Получив поддержку, Ньютон мог полностью посвятить себя тому, что он выбрал. Чтобы остаться, ему нужно было только избежать трех непростительных грехов: преступлений, ереси и брака.»


В первый раз, когда я прочитал это в 1990-х годах, это звучало забавно средневеково. “Не вляпаться в ересь”. Но когда я перечитал этот текст 20 лет спустя, фраза прозвучала как описание современной ситуации на рабочих местах.

Количество мнений, за которые вас могут уволить, постоянно растет. Те, кто увольняет, не используют слово «ересь» как обоснование, но структурно они эквивалентны. В структурном отношении ересь имеет две отличительные особенности: (1) она имеет приоритет над вопросом об истинности или ложности и (2) она перевешивает все остальное, что сделал говорящий.

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

Если вы обнаружите, что разговариваете с кем-то, кто часто использует эти ярлыки, возможно, стоит прямо спросить его, верят ли они, что детей выплескивают вместе с водой. Может ли утверждение быть %%%-истским для какого-либо значения %%%, а также истинным? Если ответ да, то они признаются в запрете правды. Это достаточно очевидно, и я думаю, что большинство ответит «нет». Но если они ответят «нет», легко показать, что они ошибаются и что на практике такие ярлыки применяются к утверждениям независимо от их истинности или ложности.
Читать дальше →
Total votes 171: ↑151 and ↓20+166
Comments325

Собеседование по Javascript, мой опыт. Часть вторая

Reading time5 min
Views22K

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

(Виктор Цой)

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

"- Ну как на собеседование сходил? Успешно? - Да. Ручку у них спер" (ссылка)

Часть вопросов будет по typescript, часть по javascript, что-то будет из html, Node.js, настройки, библиотеки, концепции. В общем всё то, о чем говорят на собеседованиях.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments19

React Hooks простыми словами

Reading time10 min
Views96K

О хуках в фронтенд-разработке на Хабре писали уже не раз, и в этой статье мы не сделаем великого открытия. Наша цель другая – рассказать про React Hooks настолько подробно и просто без трудной терминологии, насколько это возможно. Чтобы после прочтения статьи каждый понял про хуки всё. Эта статья будет полезна как начинающим React-разработчикам, так и тем, кто хочет, не уходя в глубины документации, получить практическую информацию в сжатом виде. 

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments21

Извлечение максимальной пользы из Git

Reading time7 min
Views14K
image

Сегодня ни один проект не обходится без контроля версий с помощью Git под колпаком. Хорошее знание Git поможет вам улучшить свои навыки разработчика, ускорить рабочий процесс и действительно улучшить качество вашей кодовой базы. Однако для этого необходимо немного выйти за пределы привычной нам зоны комфорта. Оказывается, в Git есть нечто большее, чем просто commit, push и pull.

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

В этой статье мы рассмотрим четыре продвинутых инструмента Git и, надеюсь, пробудим в вас желание узнать о Git ещё больше.
Читать дальше →
Total votes 14: ↑10 and ↓4+9
Comments12

Новый язык программирования

Reading time23 min
Views21K
image
Более года назад я начал публикацию статей с описанием особенностей нового языка программирования. С тех пор утекло много воды, было протестировано множество идей, в итоге несколько раз все поменялось кардинальным образом и сейчас представляю на суд читателей описание предфинальной версии языка и его особенностей.

Данная статья предназначена в первую очередь для проверки основных концепций нового языка программирования, а также для получения обратной связи от читателей Хабра. Ведь согласно наблюдению «Хабр-ума палата», не замыленный взгляд со стороны очень сильно помогает в проработке новых идей.

Этот проект очень долго был без собственного названия и в публикациях назывался просто и абстрактно «новый язык». Но после нескольких статей, временное название «новый язык» постепенно превратилось в имя собственное NewLang, которое я и решил в конечном итоге оставить (что еще раз подтверждает поговорку, что нет ничего более постоянного, чем что-то временное).

Читать дальше →
Total votes 24: ↑19 and ↓5+20
Comments49

7 распространенных ошибок в SQL-запросах, которые делал каждый (почти)

Reading time6 min
Views90K

Сегодня SQL используют уже буквально все на свете: и аналитики, и программисты, и тестировщики, и т.д. Отчасти это связано с тем, что базовые возможности этого языка легко освоить. 

Однако работая с большим количеством junior-ов, мы раз от раза находим в их решениях одни и те же ошибки. Реально — иногда просто создается ощущение, что они копируют друг у друга код. 

Кстати, иногда такая же участь постигает и специалистов более высокого полета. 

Сегодня мы решили собрать 7 таких ошибок в одном месте, чтобы как можно меньше людей их совершали.

Читать далее
Total votes 37: ↑31 and ↓6+32
Comments92

Сравниваем async/await и then/catch с примерами

Reading time10 min
Views43K

 В JavaScript есть два основных способа обработки асинхронного кода: Promise (ES6) и async / await (ES7). Эти синтаксисы дают нам равные базовые функции, но по-разному влияют на читаемость и область видимости. В этой статье мы увидим, как один синтаксис помогает, а другой отправляет нас в callback hell! Материал адаптирован на русский язык совместно с Тимофеем Тиуновым, автором курса “JavaScript” в Skillbox.

Читать далее
Total votes 16: ↑8 and ↓8+6
Comments26

Information

Rating
5,452-nd
Registered
Activity