Pull to refresh
0
0
Дмитрий @d9k

TypeScript/SQL разработчик

Send message

«Пора валить из фронтенда»: Андрей Ситник о стагнации сообщества, опенсорсе и не только

Reading time27 min
Views84K


Андрей Ситник из Злых марсиан — одно из самых известных российских имён во фронтенде: у его проектов PostCSS и Автопрефиксер счёт GitHub-звёзд идёт на десятки тысяч. Но поскольку Андрей живёт в Нью-Йорке, а путешествует по всей планете, застать в России его можно нечасто.

В мае он будет в Петербурге на конференции HolyJS, и по этому поводу его подробно расспросили участники программного комитета HolyJS Дмитрий DmitryMakhnev Махнёв и Максим Юзва. Почему Андрей считает, что фронтенд стагнирует, а код наших проектов излишне разбухший? В чём различия IT-сообществ разных стран? Как учить английский и почему это менее важно, чем кажется? Куда пропал проект Logux, презентованный на HolyJS ещё в 2016-м?
Читать дальше →
Total votes 102: ↑88 and ↓14+74
Comments296

Typeser: 1С-like ERP-конструктор на базе TypeScript

Reading time6 min
Views6.5K

Хотелось бы представить на суд местного сообщества недавно созданную облачную веб платформу разработанную бывшим 1с-овцем освоившим java, js, ts, react.

Интерфейсы TypeScript(*.d.ts файлы) генерируются на лету. Они актуальны и доступны в коде даже без сохранения конфигурации.

Главная фишка - есть возможность писать обработчики событий на языке TypeScript и sql код на триггеры при записи объектов. Редактор кода тоже онлайн и реализован на базе monaco-editor. В нем типизируется все: структура и типы метаданных, данные и элементы формы, события обработчиков.

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

Понимание брокеров сообщений. Изучение механики обмена сообщениями посредством ActiveMQ и Kafka. Глава 1

Reading time7 min
Views104K
Всем привет!

Начал перевод небольшой книги:
"Understanding Message Brokers",
автор: Jakub Korab, издательство: O'Reilly Media, Inc., дата издания: June 2017, ISBN: 9781492049296.

Из введения к книге:
"… Эта книга научит вас рассуждать о системах обмена сообщениями на брокерах, сравнивая и противопоставляя две популярные технологии брокеров: Apache ActiveMQ и Apache Kafka. Здесь будут изложены примеры использования и стимулы разработки, которые привели к тому, что их разработчики использовали совершенно разные подходы к одной и той же области — обмену сообщениями между системами с промежуточным брокером. Мы рассмотрим эти технологии с нуля и выделим влияние различных вариантов дизайна на этом пути. Вы получите глубокое понимание обоих продуктов, понимание того, как их следует и не следует использовать, и понимание того, на что следует обращать внимание при рассмотрении других технологий обмена сообщениями в будущем ..."

Переведенные к настоящему моменту части:
Глава 1. Введение
Глава 2. ActiveMQ
Глава 3. Kafka

Перевод выполнен: t.me/middle_java

Буду выкладывать законченные главы по мере перевода.
Читать дальше →
Total votes 26: ↑23 and ↓3+20
Comments17

Почему портятся приложения: тирания маржинального пользователя

Level of difficultyEasy
Reading time5 min
Views17K

Недавно мы с моим другом оплакивали странную смерть OKCupid. Семь лет назад, когда я впервые попробовал онлайн-знакомства, он работал следующим образом: нужно было написать длинный рассказ о себе и о том, что ты ищешь. Ты отвечал на сотни вопросов о своей личности, мечтах, о том, что хочешь увидеть в партнёре, о том, что для тебя недопустимо. Затем тебе показывали самых совместимых с тобой пользователей с «показателем соответствия» от 0 до 100%. Эти показатели работали пугающе хорошо. Почти каждый раз, когда я читал профиль пользователя с показателем соответствия 95% или выше, я как будто немного влюблялся. Каждое свидание было интересным; «химия» возникала не всегда, но мне казалось, что мы, по крайней мере, можем стать отличными друзьями.

Сегодня я достаточно скептически отношусь к количественным оценкам романтики и к идее о том, что схожесть обеспечивает хорошие отношения. Да и в то время я был довольно скептичен. Чего я не ожидал, так это того, что OKCupid образца 2016 года окажется лучшим, на что будут способны сервисы онлайн-знакомств. Что инструменты, при помощи которых люди будут пытаться искать самые важные отношения в своей жизни, будут становиться всё хуже, и хуже, и хуже. OKCupid, как и другие проекты, купленные Match.com, сегодня стал просто ещё одним клоном Tinder — видишь лицо, свайпаешь влево, видишь лицо, свайпаешь вправо. Цифровой ночной клуб. А я не хочу искать себе жену в ночном клубе.

И это касается не только приложений для знакомств. Почти все популярные потребительские приложения двигаются в сторону минимального участия пользователя, лент с бесконечным скроллингом и мусорного контента. Даже самое драгоценное в Интернете, поиск в Google, настолько испортился, что его нельзя использовать для сложных запросов. Reddit и Craigslist остаются невероятно полезными и ценными именно потому, что их ПО замерло в своём развитии. Как старые викторианские дома в Сан-Франциско, они стоят, защищённые причудами судьбы от ветров капитала, напоминая нам о более гуманной эпохе.

Читать далее
Total votes 78: ↑77 and ↓1+98
Comments98

Страх и ненависть в ГОСТ Р 51583-2014 (18+)

Level of difficultyMedium
Reading time6 min
Views33K

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

Поехали
Total votes 29: ↑10 and ↓19-6
Comments25

BEM'a не должно существовать

Reading time4 min
Views63K

Здравствуйте.

BEM'а не должно существовать. Есть огромное количество причин не использовать эту методологию, но из-за её простоты использования и непонимания работы CSS и HTML, методология широко распространилась среди фронтендеров всего мира, в большинстве случаев среди разработчиков СНГ. Используется BEM сейчас как на больших русскоязычных проектах (Yandex, Habr), так и в некоторых фреймворках (react-md). В этой статье пойдёт подробный разбор плюсов и минусов этого подхода к разработке. Все примеры вёрстки будут взяты с официального сайта BEM.
Читать дальше →
Total votes 203: ↑155 and ↓48+107
Comments681

Добавили бота в свой Telegram канал? Будьте готовы с ним попрощаться

Level of difficultyEasy
Reading time3 min
Views38K

Изучая безопасность мессенджера Telegram, меня поразила одна его "особенность" при работе с ботами - выяснилось, что при добавлении в канал бота никак нельзя ограничить его в правах на удаление подписчиков. То есть, говоря прямо, любой бот может вычистить всю аудиторию канала за считанные минуты.

Читать далее
Total votes 54: ↑51 and ↓3+67
Comments68

Шаблоны GRASP: Information Expert (информационный эксперт)

Reading time4 min
Views20K
Привет, хабровчане. На связи Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. В этот раз я решил написать небольшой авторский материал в преддверии старта нового курса «Архитектура и шаблоны проектирования». Приятного прочтения.





Введение


Описанные в книге Craig'а Larman'а «Applying UML and patterns, 3rd edition», GRASP'овские паттерны являются обобщением GoF'овских паттернов, а также непосредственным следствием принципов ООП. Они дополняют недостающую ступеньку в логической лестнице, которая позволяет получить GoF'овские паттерны из принципов ООП. Шаблоны GRASP являются скорее не паттернами проектирования (как GoF'овские), а фундаментальными принципами распределения ответственности между классами. Они, как показывает практика, не обладают особой популярностью, однако анализ спроектированных классов с использованием полного набора GRASP'овских паттернов является необходимым условием написания хорошего кода.

Полный список шаблонов GRASP состоит из 9 элементов:

  • Information Expert
  • Creator
  • Controller
  • Low Coupling
  • High Cohesion
  • Polymorphism
  • Pure Fabrication
  • Indirection
  • Protected Variations

Предлагаю рассмотреть самый очевидный и самый важный паттерн из списка: Information Expert.
Читать дальше →
Total votes 6: ↑5 and ↓1+6
Comments9

Паттерн «сага» как способ обеспечения консистентности данных

Reading time3 min
Views15K
Всем привет. Уже сейчас в OTUS открывает набор в новую группу курса «Highload Architect». В связи с этим я продолжаю серию своих публикаций, написанных специально для этого курса, а также приглашаю вас на свой бесплатный демо урок по теме: «Индексы в MySQL: best practices и подводные камни». Записаться на вебинар можно тут.





Введение


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

В прошлый раз мы обсудили причины возникновения проблем с согласованностью в микросервисной архитектуре, оптимистичный подход к обеспечению согласованности и обеспечение согласованности с применением двухфазного коммита.
Читать дальше →
Total votes 14: ↑8 and ↓6+8
Comments0

Перевод: full stack разработчик — это миф

Reading time4 min
Views95K
Вашему вниманию предлагается перевод любопытной статьи Скотта Хадфилда, CTO и со-основателя стартапа “Hello Pretty”. Сейчас в половине вакансий, связанных с вебом и серверной разработкой, встречается волшебная фраза “full stack”. Чаще всего с эпитетами вроде “джедай”, “супер-герой” и “ниндзя”. Кого ищут все эти люди, и кого им на самом деле удается получить в свою команду?
Читать дальше →
Total votes 95: ↑65 and ↓30+35
Comments119

Не надо следовать JavaScript-трендам

Reading time7 min
Views20K
Однажды, когда у вас выдался не самый светлый день, вы увидели новый твит о том, как пользоваться хуками React. Но по какой-то причине ваша компания или ваша команда ещё не перешли на хуки. Или, может быть, вы ими пользуетесь, но не таким способом, который можно было бы назвать «трендовым». Возможно, вы применяете Vue.js или Angular, но React-хуки лезут буквально отовсюду, вы видите сообщения о них так часто, что возникает такое ощущение, будто скоро о них «заговорит» даже микроволновка.

Так как день у вас был не очень удачным, вы начали задаваться вопросом о том, всё ли благополучно с вашим кодом. Может, стоить зарефакторить тот кусок программы, который вы только что прошли? После того, как вы перестали задавать себе вопросы о своём коде, у вас заработала фантазия, вы стали представлять себе то, как хуки будут смотреться в вашей кодовой базе.

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


Обложка выдуманной книги: «Переписываем фронтенд каждые шесть недель»
Читать дальше →
Total votes 37: ↑27 and ↓10+28
Comments73

Почему мы выбрали MobX, а не Redux, и как его использовать эффективнее

Reading time8 min
Views44K

Меня зовут Назим Гафаров, я разработчик интерфейсов в Mail.ru Cloud Solutions. На дворе 2020 год, а мы продолжаем обсуждать «нововведения» ES6-синтаксиса и преимущества MobX над Redux. Существует много причин использовать Redux в своем проекте, но так как я не знаю ни одной, расскажу о том, почему мы выбрали MobX.

Почему?
Total votes 55: ↑51 and ↓4+71
Comments242

Игра мечты, которую я делаю вместе с женой (Часть 1)

Reading time7 min
Views11K

Всем привет, я инди-разработчик, в предыдущей статье просили больше технических подробностей и подводных камей из процесса разработки игры, поэтому в этой статье я охвачу несколько основных "вещей" с которыми я столкнулся и для которых были написаны инструменты на MonoBehaviour. Надеюсь вам понравится :)

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

Как и зачем работать медленнее? Метод Сергея Королёва

Reading time15 min
Views94K


Будущий «отец» советской космонавтики Сергей Королёв — по центру. Страсть к авиации у него зародилась в юности, когда он записался в планерный кружок. На его долю ещё выпадут тяжёлые испытания, но юношеский запал у него останется на всю жизнь.

«Можно сделать быстро, но плохо, а можно — медленно, но хорошо. Через некоторое время все забудут, что было быстро, но будут помнить, что было плохо. И наоборот.»
Сергей Королёв, конструктор

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

Читать дальше →
Total votes 151: ↑145 and ↓6+139
Comments133
Уже несколько лет мы проводим на Хабре конкурс «Технотекст», одна из самых ярких номинаций которого — «Программирование». И каждый раз, получая сотни крутых статей от программистов, удивляемся: ведь эти люди не писатели и не журналисты, почему же они всякий раз, отложив свои серьёзные и важные дела, берутся за клавиатуру? Поскольку на Хабре мы привыкли глубоко разбираться в причинах всякого явления, то и здесь решили точно выяснить, что движет нашими авторами. Мы провели исследование и собрали яркую палитру мотивов.
Незаметно присоединяйтесь
Total votes 51: ↑51 and ↓0+51
Comments16

7 правил английского, которые носители нарушают чаще, чем пьют Колу

Reading time6 min
Views67K

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

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

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

Читать далее
Total votes 43: ↑39 and ↓4+46
Comments118

Разработка Mithril. Практика, опыт и подводные камни

Reading time9 min
Views13K


Синопсис


Эта статья основана на опыте разработки, приложения системы конструирующей типовые Landing-page по заранее заданным в панели управления параметрами. В статье будет описано почему для разработки приложения был выбран Mithril, его свойства, преимущества и какие подводные камни можно встретить при использовании этого замечательного инструмента.

Кому может быть интересна данная статья?


Данная статья может заинтересовать тех кто изучает использование микро-фреймворков для решения определенных задач в которых нужен удобный поддерживаемый инструментарий, с легкой и практичной архитектурой, и не нагруженной общей оболочкой. К тому же Mithril как инструмент несмотря на малый размер обладает высокой производительностью — что также является не маловажным фактором при выборе нужного инструмента разработки. Интересно?
Добро пожаловать под кат!
Total votes 10: ↑9 and ↓1+8
Comments26

Мысли о будущем компьютерных игр

Reading time6 min
Views25K

Доброго времени суток, Хабр!


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

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


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

Но обо всем по порядку.
Total votes 29: ↑17 and ↓12+5
Comments40

Язык Terra — низкоуровневый партнёр Lua

Reading time12 min
Views17K
Terra — низкоуровневый язык системного программмирования, встраиваемый и имеющий возможность метапрограммирования с помощью языка Lua.

Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments28

Работа в офисе? Нет пути

Reading time9 min
Views56K


Я - фрилансер

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

Поэтому фрилансеры очень редко ходят на собеседования. За более чем 10 лет своего профессионального стажа я был на собеседованиях 4 (четыре) раза, включая вчерашнее.

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

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

Однако, было поставлено условие — работа только в офисе. Никакой удалёнки.

В итоге я вышел оттуда с наказом подумать до понедельника. Думать, на самом деле, не о чем. Работа в офисе — не вариант. Припарковав автомобиль около своего дома, я раздумывал о том, как сформулировать письмо с отказом. Товарищ, с которым я общался, произвёл на меня хорошее впечатление и не хотелось просто писать «я не хочу с вами работать» в ответном письме. Решил, что подробно распишу причины своего отказа и важность для меня именно удаленной работы. В процессе ответ стал таким масштабным, что из письма превратился в эту статью.

Я постараюсь рассказать, почему удалённая работа — это особенный статус, от которого очень сложно отказаться.
Читать дальше →
Total votes 63: ↑57 and ↓6+51
Comments239
1
23 ...

Information

Rating
Does not participate
Location
Челябинск, Челябинская обл., Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer, Fullstack Developer
Middle
From 150,000 ₽
SQL
PostgreSQL
MySQL
TypeScript
React
Redux
Bash
Storybook
Markdown
Node.js