Как стать автором
Обновить
@vicmas read-only

Пользователь

  • Публикации
  • Комментарии

Синдром самозванца: что это и как от него избавиться

Лайфхаки для гиковМозг
Перевод
image

— А что делать со стрессом? – спросила она.
— Что вы имеете в виду под стрессом?
— Ну… Мне кажется, что я не смогу вписаться, что я не буду достаточно умной. И из-за этого я всё время чувствую стресс. Понимаете?

Девушка, с которой я разговаривала, стала первой в своей семье, вставшей на путь получения докторской степени. Она получила превосходные отметки по информатике в институте. Её приняли в элитарный университет, где она учится у ключевой фигуры в области человеко-компьютерного взаимодействия (human-computer interaction, HCI). По всем параметрам она отлично справляется. Но её гложут сомнения. Не по поводу института, куратора, темы – к ним она пылает страстью. У неё есть сомнения по поводу её самой и того, достойна ли она вообще обучаться по этой программе.
Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры85K
Комментарии 19

Новости

Показать еще

«Почему Kotlin хуже, чем Java?»

FunCorpJavaРазработка мобильных приложенийKotlin
Перевод

Такой провокационный вопрос задал реддитор nenemen в сабреддите Java:

«Я думаю о том, чтобы свой следующий проект сделать на Kotlin + Spring Boot, но мощь всенародной любви к Kotlin и одновременно ненависти к Java заставляют всё это походить на какой-то культ. Поэтому хотел бы услышать аргументы «против».

Мы в FunCorp в своё время сделали именно такой выбор в пользу Kotlin. И сегодня соотношение Java/Kotlin у нас составляет примерно 20 на 80, продолжая уменьшаться при каждом удобном случае. Поэтому ответы на этот вопрос меня заинтересовали, и я стал листать секцию комментариев. Там наткнулся на реплику реддитора rzwitserloot, которая мне показалась настолько взвешенной, многосторонней и рациональной, что я захотел поделиться ей с нашей командой, а заодно и читателями Хабра.

Далее перевод его аргументов.

Читать далее
Всего голосов 157: ↑143 и ↓14 +129
Просмотры58.5K
Комментарии 675

С чего начать учить ребенка робототехнике: интервью с создателем «РОББО Клубов»

Leader-IDРазработка робототехникиУчебный процесс в ITРобототехникаЭлектроника для начинающих
Естественное стремление айтишника — приобщить ребенка к программированию и робототехнике как можно раньше. О том, как это сделать и с чего начинать, мы спросили Павла Фролова, основателя компании «РОББО» и сети образовательных клубов «РОББО Клуб», а с недавнего времени — и сети частных школ ROBBO Academy Future Skills.



Павел собаку съел на обучении детей разных возрастов сложным техническим концепциям. Под катом — о том, как лучше преподнести технические знания ребенку, а также о его личном подходе к школьному образованию.
Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры8K
Комментарии 0

Список известных SMR дисков

Хранение данныхХранилища данныхКомпьютерное железоНакопители
Перевод
Англоязычный оригинал опубликован в форуме ixsystems и вряд ли широко известен всем, кто может столкнуться с проблемой. Хотя оригинал датирован 16 апреля 2020, он ссылается в том числе на более поздние публикации, то есть обновлялся.

Жесткие диски, которые записывают данные в перекрывающихся,
Читать дальше →
Всего голосов 42: ↑41 и ↓1 +40
Просмотры54.7K
Комментарии 103

Да мой старый laptop в несколько раз мощнее, чем ваш production server

ВиртуализацияСерверное администрированиеMicrosoft SQL Server
Именно такие претензии я услышал от наших девелоперов. Самое интересное, что это оказалось правдой, дав начало длительному расследованию. Речь пойдет про SQL servers, которые крутятся у нас на VMware.


Читать дальше →
Всего голосов 182: ↑180 и ↓2 +178
Просмотры94.9K
Комментарии 73

Индикатор раскладки клавиатуры цветом панели задач и заголовка окна в современных версиях Windows при помощи DWM

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

Идеальным вариантом было бы пристроить небольшой индикатор прямо рядом с курсором в поле ввода, но это оказалось сложной задачей: некоторые приложения вообще не используют системный курсор. Простым и достаточно удобным решением проблемы оказалась смена цвета панели задач и заголовка окна во всей системе. Как оказалось, это можно делать программно при помощи недокументированных возможностей Desktop Window Manager API…
Читать дальше →
Всего голосов 20: ↑19 и ↓1 +18
Просмотры27.8K
Комментарии 44

Идеальный мавен. Часть 1

JavaDevOps
Из песочницы

Знаю, он не идеальный, но по крайней мере я попытаюсь рассказать, как его к этому приблизить.


В одну заметку всё не войдёт, поэтому сначала план:


  1. Постановка задачи — описание той конфигурации проектов с которой мы будем работать, целей и проблем
  2. Как настроить мавен для разработки в рамках нашей задачи
  3. Как настроить CI/CD (билды, релизы, деплоймент)
  4. Нерешенные проблемы

Задача


Итак, начнем с постановки задачи. Предположим у нас есть группа людей (компания, фирма, кружок), которые разрабатывают проекты на Java. При этом у них есть как проекты с открытым кодом (OSS), так и проекты с закрытым кодом. Проекты, назовём их внутренние, разрабатываются независимо друг от друга, но между ними есть зависимости. Что хочется:


  • Централизованное управление зависимостями на внешние библиотеки
  • OSS проекты в центральном мавен репозитории
  • Закрытые проекты в своём мавен репозитории.
  • «Простой» релиз внутренних проектов с обновлением зависимости в зависимых проектах.
  • Максимальная автоматизация всех хотелок.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Просмотры23.5K
Комментарии 36

Принцип подстановки Лисков

TINKOFFПрограммированиеАнализ и проектирование системСовершенный кодООП

Всем привет, меня зовут Константин. Я занимаюсь разработкой на Java в Tinkoff.ru и люблю SOLID. В этой статье мы сформулируем принцип подстановки Лисков, покажем его связь с принципом Открытости-Закрытости, узнаем, как правильно формировать иерархию наследования и ответим на философский вопрос о том, является ли квадрат прямоугольником.


Читать дальше →
Всего голосов 50: ↑40 и ↓10 +30
Просмотры22.8K
Комментарии 69

Принцип открытости-закрытости

TINKOFFПрограммированиеАнализ и проектирование системСовершенный кодООП
Из песочницы

Привет, Хабр! Перед вами перевод статьи Роберта Мартина Open-Closed Principle, которую он опубликовал в январе 1996 года. Статья, мягко говоря, не самая свежая. Но в рунете статьи дяди Боба про SOLID пересказывают только в урезанном виде, поэтому я подумал, что полный перевод лишним не будет.



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


  • Ни одну программу нельзя «закрыть» на 100%.
  • Объектно-ориентированное программирование (ООП) оперирует не физическими объектами реального мира, а понятиями — например, понятием «упорядочивание».
Читать дальше →
Всего голосов 58: ↑56 и ↓2 +54
Просмотры26.3K
Комментарии 19

Отношения классов — от UML к коду

JavaUML Design
Из песочницы
Введение

Диаграмма классов UML позволяет обозначать отношения между классами и их экземплярами. Для чего они нужны? Они нужны, например, для моделирования прикладной области. Но как отношения отражаются в программном коде? Данное небольшое исследование пытается ответить на этот вопрос — показать эти отношения в коде.
Читать дальше →
Всего голосов 25: ↑22 и ↓3 +19
Просмотры641.4K
Комментарии 21

Пожалуйста, перестаньте рекомендовать Git Flow

ФлантПрограммированиеGit
Перевод
Прим. перев.: Новая статья с критикой полюбившейся многим Git Flow получила столь заметное внимание, что даже оригинальный автор модели обновил публикацию 10-летней давности, актуализировав свой взгляд на её применение сегодня. Публикуем перевод как самой критики, так и официальной реакции.



Git-flow — это методология ветвления и слияния, сильно популяризированная заметкой 2010 года под названием «A Successful Git branching model» (была переведена на хабре как «Удачная модель ветвления для Git» — прим. перев.).

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

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

На этом можно заканчивать, так? Ну, не совсем. Наверняка некоторые из вас скептически отнеслись к моей цепочке рассуждений, поэтому давайте копнем поглубже и попытаемся понять, почему модель ветвления Git-flow должна поджариться на медленном огне.
Читать дальше →
Всего голосов 98: ↑89 и ↓9 +80
Просмотры107.1K
Комментарии 174

Вопросы к собеседованию Java-backend, Java core (60 вопросов)

JavaКарьера в IT-индустрии
🔥 Технотекст 2020
image

Добрый день! Представляю вашему вниманию список вопросов к собеседованию Java Backend, которые я оформлял на протяжении около 2х лет.

Вопросы разбиты по темам: core, collections, concurrency, io, exceptions, которые задают основные направления хода технического собеседования. Звездочками отмечен субъективный (с точки зрения автора) уровень сложности вопроса, в сноске спойлера — краткий ответ на вопрос. Ответ представляет для интервьювера правильное направления развития мысли кандидата.
Читать далее
Всего голосов 31: ↑23 и ↓8 +15
Просмотры109.3K
Комментарии 75

Инверсии зависимостей управления впрыском

ПрограммированиеСовершенный кодООП
image

Вступление


Наверняка первый вопрос, который возник у вас при взгляде на заголовок, был "Шта?". На самом деле я просто перевел фразу "Инверсия управления, внедрение зависимости" в Google Translate на китайский, а затем обратно. Зачем? Затем, что на мой взгляд, это хорошая иллюстрация того, что происходит на самом деле. Люди вокруг путают, коверкают и извращают эти понятия. По долгу службы я провожу много интервью, и 90% того, что я слышу, когда задаю вопрос про DI — честно говоря, откровенный бред. Я сделал поиск по Хабру и нашел несколько статей, которые пытаются раскрыть эту тему, но не могу сказать, что они мне сильно понравились (ладно, ладно, я проглядел только три первых страницы, каюсь). Здесь же на Хабре я встречал в комментариях такую расшифровку IoC, как Injection of Container. Кто-то всерьез предполагает, что есть некий механизм инъекции контейнеров, который сосуществует где-то рядом с DI, и, видимо, даже делает нечто похожее. Только с контейнерами. Мда. На самом деле понять внедрение зависимости очень просто, надо всего лишь…
Читать дальше →
Всего голосов 48: ↑41 и ↓7 +34
Просмотры79.8K
Комментарии 51

Инверсия управления/Inversion of Control

Совершенный код
Перевод
Инверсия управления является распространенным явлением, с которым вы столкнетесь при использовании фреймворков. И действительно, она часто рассматривается как определяющая характеристика фреймворка.

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

  #ruby
  puts 'What is your name?'
  name = gets
  process_name(name)
  puts 'What is your quest?'
  quest = gets
  process_quest(quest)


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

Однако если бы я использовал оконную систему для чего-то похожего, я написал бы что-то, что работает с окном:
  require 'tk'
  root = TkRoot.new()
  name_label = TkLabel.new() {text "What is Your Name?"}
  name_label.pack
  name = TkEntry.new(root).pack
  name.bind("FocusOut") {process_name(name)}
  quest_label = TkLabel.new() {text "What is Your Quest?"}
  quest_label.pack
  quest = TkEntry.new(root).pack
  quest.bind("FocusOut") {process_quest(quest)}
  Tk.mainloop()

Теперь между этими двумя программами большая разница в потоке управления — в частности, в управлении временем, когда вызываются методы process_name и process_quest. В примере с коммандной строкой я контролирую, когда эти методы вызываются, но в примере с оконным приложением нет. Вместо этого я передаю контроль оконной системе (команда Tk.mainloop). Далее она решает, когда вызвать мои методы, основываясь на связях, которые я настроил при создании формы. Управление инвертировано — управляют мной, а не я управляю фреймворком. Это явление и называется инверсией управления (также известно как Принцип Голливуда — «Не звони нам, мы сами позвоним тебе» — Hollywood Principle — «Don't call us, we'll call you»).
Читать дальше →
Всего голосов 58: ↑50 и ↓8 +42
Просмотры53.4K
Комментарии 25

10 идей по воспитанию помехозащищенности

MaxilectGTDУправление персоналомЛайфхаки для гиковЗдоровье
Говоря о помехах работе, обычно подразумевают посторонние звуки и влияние коллег. Но в моем понимании понятие “помехозащищенности” шире. Это способность работать над текущей задачей, не отвлекаясь на что-то другое.

Сегодня поговорим о том, почему это важно и как этого достичь.

image
(The Isolator, 1925)
Читать дальше →
Всего голосов 22: ↑19 и ↓3 +16
Просмотры10.9K
Комментарии 7

Почему разработчикам не нравится Agile?

Agile

HR-специалист одной компании недавно сказал такую фразу: “разработчики не хотят к нам идти, как только узнают, что мы работаем по Agile”. И хотя я сам нередко слышу недовольство, высказываемое разработчиками в отношении Agile, такая категоричность меня удивила.


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


Почему же не стыкуются отзывы реальных разработчиков с декларируемыми целями Agile?

Читать дальше →
Всего голосов 34: ↑21 и ↓13 +8
Просмотры24.4K
Комментарии 723

Оценка задач в Story Points

Agile
Из песочницы
Практически каждый человек, который сталкивался с разработкой ПО знает что такое оценка задач в Story Points (SP), тем не менее периодически мне доводится рассказывать коллегам из других отделов или новичкам в команде, которые ни разу не сталкивались с таким подходом, зачем мы используем SP и почему это удобно для команды и эффективно для компании.

Цель этого текста – рассказать, что такое SP, как их использовать для оценки задач и почему эта методика получила такое широкое распространение.
Читать дальше →
Всего голосов 14: ↑12 и ↓2 +10
Просмотры50.1K
Комментарии 19

Как я, тимлид, оцениваю проекты

MaxilectУправление разработкойУправление проектамиAgile
Тимлиды часто оценивают проекты, и не все делают это хорошо. Тут многое зависит от личности самого тимлида, а также от его понимания команды. Есть много техник оценки проектов от метода “по аналогии” до PERT. Но сегодня я расскажу о том, как я применяю planning poker и другие приемы, чтобы оценивать точнее и с большей пользой.

image

Читать дальше →
Всего голосов 30: ↑24 и ↓6 +18
Просмотры12.3K
Комментарии 17

Как не выстрелить себе в ногу, используя Liquibase

EPAMПрограммированиеJavaСистемы управления версиямиАдминистрирование баз данных

Никогда не было, и вот опять!


На очередном проекте мы решили использовать Liquibase с самого начала, чтобы избежать проблем в будущем. Как оказалось, не все молодые члены команды умеют его правильно использовать. Я провёл внутренний воркшоп, который затем решил превратить в статью.


Статья включает в себя полезные советы и описание трех самых явных ловушек, в которые можно попасть, работая с инструментами миграции реляционных баз данных, в частности Liquibase. Рассчитана на Java разработчиков уровня Junior и Middle, для более опытных разработчиков может быть интересна для структуризации и повторения того, что, скорее всего, уже известно.


Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Просмотры3.9K
Комментарии 3

Топ лучших докладов Joker 2019

JUG Ru GroupПрограммированиеJava
В октябре в Санкт-Петербурге прошла хардкорная конференция Joker 2019, и уже много про нее написано («Joker 2019: триумф года», «Чем нам запомнилась последняя JokerConf», «Атакуем Joker 2019 полностью: как прошла самая крупная Java-конференция в России»), и фоточки уже доступны. Обратная связь собрана, итоги подведены, и самое время поудобней усесться в кресле и посмотреть десятку лучших докладов с конференции.


Ссылка на плейлист с открытыми докладами — под катом.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры12.4K
Комментарии 11

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность