Как стать автором
Обновить
0
0

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

Отправить сообщение

Собеседование на английском: как пройти его не хуже сына маминой подруги

Время на прочтение6 мин
Количество просмотров32K


Любые собеседования специфичны. Они отличаются от компании к компании; кроме того, если HR любит использовать нестандартный подход к делу, то у одного и того же специалиста не будет двух одинаковых собеседований. Пройти этот этап трудоустройства бывает очень непросто даже на родном языке — что уж говорить об иностранных.

Во многих случаях «иноязычные» рабочие интервью при успешном прохождении позволяют прорубить окно не только в Европу, но и во многие другие страны мира, включая те, что расположены за океаном. О том, как лучше проходить англоязычные собеседования, мы и поговорим в этой статье.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии6

Maraquia — ORM для MongoDB

Время на прочтение7 мин
Количество просмотров14K

После прочтения заголовка у многих наверняка возникает вопрос — зачем ещё один велосипед при наличии уже обкатанных Mongoose, Mongorito, TypeORM и т. д.? Для ответа нужно разобраться в чём отличие ORM от ODM. Смотрим википедию:


ORM (англ. Object-Relational Mapping, рус. объектно-реляционное отображение, или преобразование) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».

То есть ORM — это именно про реляционное представление данных. Напомню, в реляционных БД нет возможности просто взять и встроить документ в поле другого документа (в этой статье записи таблиц тоже называются документами, хоть это и некорректно), можно конечно хранить в поле JSON в виде строки, но индекс по данным в нём сделать не выйдет. Вместо этого используются "ссылки" — в поле, где должен быть вложенный документ, вместо него записывается его идентификатор, а сам документ с этим идентификатором сохраняется в соседней таблице. ORM умеет работать с такими ссылками — записи по ним автоматически сразу или лениво забираются из БД, а при сохранении не нужно сперва сохранять дочерний документ, брать назначенный ему идентификатор, записывать его в поле родительского документа и только после этого сохранять родительский документ. Нужно просто попросить ORM сохранить родительский документ и всё что с ним связано, а он (object-relational mapper) уже сам разберётся как это правильно сделать. ODM же наоборот, не умеет работать с такими ссылками, зато знает про встроенные документы.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии19

noBackend, или Как выжить в эпоху толстеющих клиентов

Время на прочтение15 мин
Количество просмотров33K
Название статьи не стоит понимать буквально: backend никуда не делся, просто фокус разработки — особенно на начальном этапе развития нового проекта — сильно смещается в сторону «клиентской части». Появляется большой соблазн взять что-то понятное для хранения данных и уже «обвязанное» REST API, максимально отказаться от PHP/Python/Ruby/Java/etc, писать 80% кода «на стороне клиента», минимально заботясь о возне «на стороне сервера».

Эта статья основана на докладе Николая Самохвалова, который, в свою очередь, обобщил опыт ряда проектов, написанных на React, React Native и Swift и переходящих на парадигму noBackend за счёт PostgreSQL+PostgREST.

В конце, вы найдете список must-check-вопросов для работы с noBackend-подходом, а, если ваш Postgres-опыт позволяет, то сразу после прочтения вы можете приступить к разворачиванию безопасного, высокопроизводительного и годного для быстрого развития REST API.



О спикере: Николай Самохвалов больше десяти лет работает с PostgreSQL, является со-организатором российского сообщества RuPostgres.org и в данный момент помогает различным компаниям оптимизировать, масштабировать и автоматизировать процессы, связанные с эксплуатацией PostgreSQL. Далее — расшифровка доклада Николая на Backend Conf, рассчитанного и на бэкенд, и на фронтенд разработчиков.

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


Всего голосов 50: ↑46 и ↓4+42
Комментарии87

Что я узнал на личном опыте за годы фриланса

Время на прочтение3 мин
Количество просмотров60K
Первоначально опубликовано в /r/freelance на Reddit, но выкладываю здесь для потомков.

Я занимаюсь фрилансом довольно долго и могу поделиться крупицами знаний, которые я услышал или узнал сам, зачастую нелегким путём.

Типичный штатный сотрудник обходится компании в 2-3 раза дороже его номинальной зарплаты


Используй это в качестве основы для расчёта своих тарифов. $90 в час может показаться дорогой альтернативой сотруднику, который получает зарплату $30 в час, но в реальности это эквивалент $90, и расходы прекращаются сразу по окончании проекта.

Если клиент просит 6+ часов в день, ты потратишь 8 часов


Ты не сделаешь ничего полезного (читай: оплачиваемого) в оставшиеся два часа. Они отняли у тебя целый день, но заплатили только за 75%. В таких ситуациях взимай дневную ставку.
Читать дальше →
Всего голосов 75: ↑72 и ↓3+69
Комментарии95

Apache Kafka – мой конспект

Время на прочтение9 мин
Количество просмотров332K
Это мой конспект, в котором коротко и по сути затрону такие понятия Kafka как:

— Тема (Topic)
— Подписчики (consumer)
— Издатель (producer)
— Группа (group), раздел (partition)
— Потоки (streams)

Kafka — основное


При изучении Kafka возникали вопросы, ответы на которые мне приходилось эксперементально получать на примерах, вот это и изложено в этом конспекте. Как стартовать и с чего начать я дам одну из ссылок ниже в материалах.

Apache Kafka – диспетчер сообщений на Java платформе. В Kafka есть тема сообщения в которую издатели пишут сообщения и есть подписчики в темах, которые читают эти сообщения, все сообщения в процессе диспетчеризации пишутся на диск и не зависит от потребителей.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии10

18 правил идеального psd-макета — полезный чек-лист для дизайнеров

Время на прочтение8 мин
Количество просмотров41K
Общий принцип — Не делай брак.
Не бери брак. Не передавай брак.
Тойота.


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

«Почти» по сетке


Сетка призвана упрощать вёрстку и определять местоположение ключевых элементов. В некоторых случаях дизайнеры намеренно отходят от 12-колоночного грида для создания неординарного дизайна.

Но если при создании макета вы всё-таки придерживались сетки — будьте добры убедиться, что это правда так. Верстальщики то и дело жалуются, что в проекте от страницы к странице дизайн может сильно отличаться: идентичные блоки появляются то левее, то правее, иконки разного размера, а кнопки не похожи друг на друга.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии24

TOП-10: разбор лучших докладов HolyJS 2017 Moscow

Время на прочтение19 мин
Количество просмотров17K

Действуем по старой схеме: я для вас отсматриваю подряд 10 докладов (бесплатно доступных на YouTube), делаю короткое описание содержимого, чтобы неинтересное можно было выбросить. Кроме того, с сайтов собираю ссылки на слайды и описания. Полученное сортирую и выдаю в порядке увеличения рейтинга — то есть в самом низу будет самый крутой доклад. Оценки — это не лайки на YouTube, а собственная оценочная система, она круче лайков.


Предыдущие части:



На этот раз объектом изысканий будет HolyJS 2017 Moscow — известная JavaScript-конференция, четвёртая по счёту. Более 600 JS-разработчиков собрались под одной крышей для того, чтобы обсудить настоящее и будущее JavaScript-сообщества с мировыми экспертами: Douglas Crockford, Lea Verou, Martin Splitt и так далее.


Осторожно, трафик! В этом посте присутствует огромное количество картинок — слайдов и скриншотов с видео в формате 720p.

Disclaimer: Все описания являются моим личным мнением. Всё написанное — плод моего больного воображения, а не искажённые цитаты докладчиков (это предостережение написано для того, чтобы докладчики меня не побили).

Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии11

ASP.NET Core: Механизмы предотвращения атак 2.0

Время на прочтение20 мин
Количество просмотров25K

По встроенным механизмам безопасности ASP .NET Core написано мало статей. Даже официальная документация имеет пробелы. В этой статье мы пройдём по всем основным компонентам, имеющим отношение к безопасности, и разберём, как это работает внутри.


Если вы используете старый добрый ASP .NET, то для вас будет полезна информация по внутреннему устройству компонентов безопасности и лучшим практикам их использования. Здесь вы найдёте ответы на следующие вопросы: как реализованы современные анти-XSS механизмы и как их правильно использовать в ASP .NET Core? Как правильно работать с cookies и какие подводные камни там могут встретиться? Как был переписан механизм защиты от CSRF? Как правильно работать с криптографическими алгоритмами? Кроме того, рассказывается про опыт участия в Bug Bounty по поиску уязвимостей в ASP .NET Core.


Перед чтением рекомендуется освежить в памяти атаки из списка OWASP Top 10.


Прототипом статьи является доклад Михаила Щербакова на конференции DotNext 2017 Moscow. Михаил — Microsoft .NET MVP, участник .NET Core Bug Bounty Program, соорганизатор сообщества .NET программистов (Московское комьюнити называется MskDotNet, питерское — SpbDotNet). По работе последние 5 лет занимается безопасностью. Работал в Positive Technologies, в Cezurity, сейчас как консультант работает напрямую с заказчиками, по большей части в этой же сфере. Профессиональные интересы: статический и динамический анализ кода, информационная безопасность, автоматизация отладки кода, исследование внутреннего устройства .NET CLR.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

Читать дальше →
Всего голосов 54: ↑53 и ↓1+52
Комментарии2

30 секунд CSS

Время на прочтение11 мин
Количество просмотров57K


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

Читать дальше →
Всего голосов 64: ↑59 и ↓5+54
Комментарии52

Пунктирные вау-эффекты: о магии простыми словами

Время на прочтение7 мин
Количество просмотров38K


Продолжаем смотреть технические приемы создания различных анимаций в интерфейсах. Мы уже познакомились с частицами, масками и изменением форм различных объектов — настал черед рисовать пунктирные линии.

Перед тем, как перейти к статье, сделаю небольшое отступление. Эта серия статей предназначена для разработчиков (в первую очередь начинающих), которые хотят делать красивые вещи, но совершенно запутались в сложных инструментах. Каждый раз мы затрагиваем какой-то один прием использования того или иного инструмента и смотрим, к созданию какиих эффектов его можно применить. Комментарии о том, что “во времена флеша было лучше” или что “нужно анимации рисовать в AfterEffects” безусловно имеют право на существование, но будут вырваны из контекста и совершенно не помогут начинающим в решении их задачи.
Всего голосов 60: ↑60 и ↓0+60
Комментарии15

Использование алгоритма Hi/Lo для генерации ключей в Entity Framework Core

Время на прочтение5 мин
Количество просмотров12K


Алгоритм Hi/Lo полезен, когда вам нужны уникальные ключи. Если коротко, то алгоритм Hi/Lo описывает механизм генерации безопасных идентификаторов на стороне клиента, а не в базе данных (безопасных в этом контексте означает отсутствие коллизий). Он задает уникальные идентификаторы строкам таблицы, не в зависимости от того, будет ли сразу храниться строка в базе данных или нет. Это позволяет сразу же использовать идентификаторы, как обычные последовательные идентификаторы базы данных.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии4

Кольцевые столбчатые диаграммы в ассортименте

Время на прочтение6 мин
Количество просмотров6.8K

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

Округлить диаграммы
Всего голосов 22: ↑21 и ↓1+20
Комментарии9

[в закладки] Инструменты для тестирования JavaScript-проектов

Время на прочтение17 мин
Количество просмотров43K
Автор материала, перевод которого мы публикуем сегодня, сотрудник Welldone Software, говорит, что если в двух словах рассказать об инструментах для тестирования JavaScript-проектов, то для модульного и интеграционного тестирования рекомендуется использовать Jest, а для тестов пользовательского интерфейса — TestCafe. Однако каждый конкретный проект может нуждаться в чём-то особенном. Лучший способ найти именно то, что нужно — взять несколько инструментов, которые, как кажется, подойдут, и испытать их в действии. Эксперименты подскажут — на чём именно стоит остановиться.



Представляем вашему вниманию обзор наиболее широко используемых инструментов тестирования для JS-проектов, на которые стоит обратить внимание в 2018-м году.
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии8

Универсальные приложения React + Express

Время на прочтение5 мин
Количество просмотров16K
В прошлой статье рассматривалась библиотека Next.js, которая позволяет разрабатывать универсальные приложения «из коробки». В обсуждении статьи были озвучены существенные недостатки этой библиотеки. Судя по тому, что https://github.com/zeit/next.js/issues/88 бурно обсуждается с октября 2016 года, решения проблемы в ближайшее время не будет.

Поэтому, предлагаю ознакомится с современным состоянием «экосистемы» React.js, т.к. на сегодняшний день все, что делает Next.js, и даже больше, можно сделать при помощи сравнительно простых приемов. Есть, конечно, и готовые заготовки проектов. Например, мне очень нравится проект, который, к сожалению, базируется на неактульной версии роутера. И очень актуальный, хотя не такой «заслуженный» проект.

Использовать готовые проекты с массой плохо документированных возможностей немного страшно, т.к. не знаешь, где споткнешься, и самое главное — как развивать проект. Поэтому для тех, кто хочет разобраться в современном состоянии вопроса (и для себя), я сделал заготовку проекта с разъяснениями. В ней не будет какого-то моего личного эксклюзивного кода. Просто компиляция из примеров документации и большого количества статей.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии0

Универсальные приложения React + Express (продолжение)

Время на прочтение7 мин
Количество просмотров13K
В предыдущей статье был рассмотрен простой проект универсального приложения на React.js, в котором используются только стандартные средства и фрагменты кода из официальной документации React.js. Но этого недостаточно для удобной разработки. Нужно сформировать окружение так, чтобы были стандартные возможности (например «горячая» перегрузка компонентов) в равной степени как для серверной, так и для клиентской части фронтенда.
Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии17

Rekit Studio: IDE для React-приложений

Время на прочтение9 мин
Количество просмотров21K
Сегодня мы публикуем перевод материала Нейта Ванга, создателя Rekit. Здесь он рассказывает о новом стабильном релизе системы, Rekit Studio. Это — полноценная IDE для разработки приложений, созданных с использованием технологий React, Redux и React Router. Он говорит, что его команда создаёт с помощью Rekit сложные веб-приложения уже больше года.

Предыдущая версия Rekit Studio называлась Rekit Portal. Она не поддерживала возможностей по редактированию кода. Теперь, благодаря редактору Monaco Editor, того, который используется в VS Code, и благодаря замечательному средству для форматирования кода prettier, Rekit Studio позволяет удобно работать с кодом. Именно поэтому в названии системы появилось слово «studio».

Rekit Studio
Читать дальше →
Всего голосов 32: ↑31 и ↓1+30
Комментарии4

Изучаем и реализуем алгоритм работы правильного observer паттерна для react компонентов

Время на прочтение11 мин
Количество просмотров11K


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

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии14

Видео с митапа UralJS #6 — избавляемся от this, типизируем Redux-приложение и пишем на Реакте без тормозов

Время на прочтение2 мин
Количество просмотров3.9K

image


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


По традиции было три спикера — фрилансер, контуровец и злой марсианин. Вот что мы обсуждали:

Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии2

Мышление в стиле Ramda: Первые шаги

Время на прочтение6 мин
Количество просмотров23K
Недавно я познакомился с замечательной серией статей "Thinking in Ramda", которые проясняют на простых и ясных примерах способы написания кода в функциональном стиле с использованием библиотеки Ramda. Эти статьи показались мне настолько прекрасными, что я не смог удержаться от того, чтобы не перевести их на русский язык. Надеюсь, что в этом будет польза для многих людей :) Давайте начнём перевод с первой вступительной статьи.

1. Первые шаги
2. Сочетаем функции
3. Частичное применение (каррирование)
4. Декларативное программирование
5. Бесточечная нотация
6. Неизменяемость и объекты
7. Неизменяемость и массивы
8. Линзы
9. Заключение

Данный пост — это начало серии статей «Мышление в стиле Ramda» о функциональном программировании.

Я буду использовать библиотеку Ramda в этих статьях, хотя многие из обсуждаемых идей применимы также к множеству других библиотек, таких как Underscore и Lodash, а также к другим языкам программирования.

Я буду придерживаться лёгкой, менее академической стороны функционального программирования. Это в основном потому что я хочу, чтобы серия была доступна большему числу людей, но также частично и потому что я сам не так близок к истинно функциональной дороге.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии6
1
23 ...

Информация

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