Источник
Интересные публикации на Хабрахабре
Выбор редакции
22 января, 22:07

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

  • 0

Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже далеко и не одна? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна. Что мы будем рассматривать в данной статье? В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq. В Части 6 — послесловие Читать дальше →

Выбор редакции
22 января, 20:16

[Из песочницы] Универсальный конвертер данных на платформе .Net Framework

  • 0

В этой статье я хотел бы рассказать опыт нашей команды по созданию универсального конвертера данных. На первый взгляд звучит очень просто, что тут сложного? Взять один тип данных привести к другому типу. А если данные это структура? Тоже не трудно, вы скажете, просто нужно выполнить меппинг полей. Да, просто. Но когда целевых структур несколько, все они сложные и требуется конвертация “на лету”, да еще и с обогащением данных, то как говорится “надо думать”. Читать дальше →

Выбор редакции
22 января, 19:45

Про ошибки и исключения

  • 0

В прошлый раз я разобрал два примера (раз, два), как можно перейти от императивной валидации входных значений к декларативной. Второй пример действительно «слишком много знает» про аспекты хранения и имеет подводные камни (раз, два). Альтернатива – разбить валидацию на 3 части: Модел байндинг: ожидали int, пришел string – возвращаем 400 Валидация значений: поле email, должно быть в формате [email protected], а пришло 123Petya – возвращаем 422 Валидация бизнес-правил: ожидали что корзина пользователя активна, а она в архиве. Возвращаем 422 К сожалению стандартный механизм байндинга ASP.NET MVC не различает ошибки несоответствия типа (получили string вместо int) и валидаци, поэтому если вы хотите различать 400 и 422 коды ответа, то придется это сделать самостоятельно. Но речь не об этом. Как слой бизнес-логики может вернуть в контроллер сообщение об ошибке? Самый распространенный по мнению Хабра способ (раз, два, три) – выбросить исключение. Таким образом между понятием «ошибка» и «исключение» ставится знак равно. Причем «ошибка» трактуется в широком смысле слова: это не только валидация, но и проверка прав доступа и бизнес-правил. Так ли это? Является ли любая ошибка «исключительной ситуацией»? Если вы когда-нибудь сталкивались с бухгалтерским или налоговым учетом, то наверняка знаете, что существует специальный термин «корректировка». Он означает, что в прошлом отчетном периоде были поданы неверные сведения и их необходимо исправить. То есть в сфере учета, без которой бизнес не может существовать в принципе, ошибки – объекты первого класса. Для них введены специальные термины. Можно ли назвать их исключительными ситуациями? Нет. Это нормальное поведение. Люди ошибаются. Программисты — просто чересчур оптимистичный народ. Мы просто никогда не снимаем розовых очков. Читать статью полностью желаешь

Выбор редакции
22 января, 19:36

Как с помощью трех открытых проектов написать диплом

  • 0

Не секрет, что в у нас в проекте используют обучают студентов. Точнее, студенты на базе проекта осваивают практические аспекты системного программирования: пишут дипломы, курсовые, занимаются исследовательской деятельностью и так далее. Вот об одном дипломе, успешно защищённом прошлым летом, и пойдет речь в данной статье. Автором является Александра Бутрова AleksandraButrova, тема “Разработка графической подсистемы для встроенных операционных систем”. При написании диплома были использованы три открытых проекта: Embox, Nuklear и stb. Последний использовался только для загрузки картинок, а вот Nuklear являлся, по сути, виновником торжества. Можно сказать, что работа свелась к интеграции Nuklear и Embox. Первый предоставлял лёгкую графическую библиотеку, а Embox отвечал за встроенные системы. Читать дальше →

Выбор редакции
22 января, 19:33

[Из песочницы] Обучение программированию онлайн — а все ли так просто как кажется?

  • 0

В эпоху растущей популярности онлайн обучения и различных курсов, хочется более подробно осветить тему, а именно подводные камни, всплывающие на пути этого самого обучения. Недавно решил на более серьезном для новичка уровне освоить Java. Знакомый разработчик с товарищами организовали онлайн курс и предложили мне принять участие. Так как цена был подъемная (10 000 р. за основы языка — java core) и в QA знание языка программирования является жирным плюсом — то я, недолго раздумывая, согласился. Постараюсь кратко описать плюсы, минусы, а также свои впечатления от данного мероприятия. Начну с плюсов 1) Онлайн занятия (как плюс так и минус). Постигать программирование удобно дома, необходим только нормальный инет и микрофон. Ехать никуда не нужно, обучаться можно, лежа на диване в пижаме, попивая кофеек. Для участников курсов весь вспомогательный материал расшарен и находится в открытом доступе.Все видеозаписи занятий выкладывались на google диск, а книги и доп. материалы можно было найти на гит лаб. Там же задавалась домашка. Для программирования использовали IntelliJ IDEA, домашку для проверки отправляли в репозиторий на Bitbacket через GIT (да-да, с ним тоже обучали работать). Несомненный плюс онлайна заключается в том, что все необходимое для занятий расположено на трех соседних вкладках браузера. 2) Относительно небольшая группа учащихся. На момент когда я начинал занятия, в группе было 4 человека. А учитывая, что преподавателей было 3, то они могли уделить достаточно внимания и, в какой то степени, индивидуальный подход каждому ученику. 3) Хороший преподавательский состав. В менторах были ребята с неплохим опытом работы в программировании. Они хорошо объясняли материал. Старались подробно разбирать задачи, и почти всегда были на связи. При возникновении вопроса можно было договориться, созвониться по скайпу и в тот же день решить проблему, даже если занятия в этот день не было. Читать дальше →

Выбор редакции
22 января, 18:44

[Из песочницы] Своя СУБД за 3 недели. Нужно всего лишь каждый день немного времени…

  • 0

Своя СУБД за 3 недели. Нужно всего-лишь каждый день немного времени уделять архитектуре; и всё остальное время вкалывать на результат, печатая и перепечатывая сотни строк кода. По закону Мерфи, если есть более одного проекта на выбор — я возьмусь за самый сложный из предложенных. Так случилось и с последним заданием курса о системах управления базами данных (СУБД). Дропнуть студентов

Выбор редакции
22 января, 18:44

Я ненавижу константы в Ruby

  • 0

Ruby — очень сложный язык программирования. Он невероятно красивый и читабельный, однако у него есть множество тем и особенностей, которые могут оставаться "темным лесом" даже для опытного Ruby-разработчика. Одной из таких тем является поиск констант. Несмотря на заголовок, гнева в посте не будет. Читать дальше →

Выбор редакции
22 января, 17:40

Школа докладчиков: разбор выступления Евгения Россинского, ivi

  • 0

Мы продолжаем профессиональный разбор докладов с конференции Highload++ на предмет эффективности выступлений. О том, что именно мы анализируем и зачем это нужно, я подробно рассказывал в первой публикации. В прошлый раз мы разбирали выступление Артема Данилова. Сегодня посмотрим на доклад Евгения Россинского (ivi). Но начнем не с самого доклада — а с мебели. Ох уж эти тумбочки

Выбор редакции
22 января, 17:37

Che Burashka и взлом систем продажи билетов на московские электрички

  • 0

Приблизительно 17 января группа, называющая себя «Исследовательская группа Che Burashka» опубликовала исследование уязвимости, позволяющее взлом систем продаж билетов на московские электрички. Разработчиком систем является компания Микротех. Какого-либо опровержения от Микротех на данный момент нет. Автор не имеет никакого отношения к группе «Che Burahska» и не несёт ответственности за деятельность этой группы. Ниже приводится текст, свободно распространяемый данной группой на различных ресурсах в интернет, и описание уязвимости (по мнению группы — неполное), сведённые вместе и отредактированные для удобочитаемости. Данный текст предлагается читателям Хабра для ознакомления и обсуждения. Читать дальше →

Выбор редакции
22 января, 17:37

Новое поколение сетей: представлена первая спецификация 5G

  • 0

В конце декабря консорциум 3GPP официально объявил о завершении спецификации для пятого поколения мобильных сетей — 5G. Однако это лишь первая часть официального документа, которая описывает стандарт 5G New Radio (NR) для развертывания 5G-сетей на базе существующей LTE-инфраструктуры (non-standalone). Вторая часть спецификации для создания сетей на автономной инфраструктуре (standalone) ожидается в этом году. Подробнее о спецификации и особенностях стандарта расскажем далее. Читать дальше →

Выбор редакции
22 января, 16:33

Как нейросети помогают в e-learning

  • 0

Рассказываем, что такое нейросети, как они работают и помогают учиться в интернете. Бонусом — подборка полезных блогов о нейронных сетях на английском языке. Читать дальше →

Выбор редакции
22 января, 16:33

Честный подход к управлению людьми, или Почему я никогда не делаю контрофферы

  • 0

К сожалению, в условиях жёстких бизнес-целей честность иногда отодвигается на второе место. Осознанно занижают зарплаты, рисуют заведомо недостижимые карьерные перспективы, с помощью ловких манипуляций провоцируют на переработки, которые ничем не компенсируются. Мы так не делаем принципиально. И это не донкихотство, а вполне осознанное решение, которое вполне можно обосновать прагматически. В этой статье мы поговорим о честности на примере контрофферов. Надеюсь, в результате станет понятно, почему я считаю их крайне вредной затеей. Дисклеймер: Яндекс очень большой и разный, и я описываю здесь только принципы, принятые в разработке Яндекс.Здоровья. Уверен, что коллеги из других подразделений могут не разделять мои (довольно радикальные) убеждения и не видят ничего зазорного в том, чтобы удержать хорошего человека, сделав ему контроффер. Пару слов о себе. Я CTO в сервисе Яндекс.Здоровье, отвечаю за всю его техническую часть: разработку, тестирование, эксплуатацию и т. д. Сервис растёт стремительными темпами, мы активно расширяем команду, собеседуем технарей (разработчиков, тестировщиков, админов) и в большом количестве приглашаем их на работу. Время от времени случается, что хорошие кандидаты отказываются от подтверждённого ими на словах оффера. В большинстве случаев, расспросив кандидата, мы узнаём, что на текущей работе ему или ей сделали встречное «предложение, от которого нельзя отказаться», и оно звучит вкуснее и интереснее, чем наше. Читать дальше →