Как стать автором
Обновить
14
0
Сергей Семашко @semashko_sergey

Fullstack Javascript программист

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

Как добиться повторного использования React компонентов (Перевод)

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


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

Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии13

Консоль 21 века: mosh, tmux, fish

Время на прочтение8 мин
Количество просмотров97K
В своей работе мне приходится проводить чуть ли не все свое время в консоли, как в локальной, так и в удаленной. Нет, что вы, я не жалуюсь, даже наоборот — мне нравятся возможности автоматизации, которые предоставляют консольные инструменты, и работа в консоли вполне продуктивна.

Но если вы проводите за своим инструментом до 80% рабочего времени, то желательно убедиться, что вы не тратите время впустую и что работа доставляет вам удовольствие. В этой статье я бы хотел немного рассказать про те инструменты, которыми я лично пользуюсь каждый день, и про то, как они улучшают user experience (и, часто, продуктивность) при работе с консолью и с удаленными серверами в частности.

Проблемы ssh


При работе с удаленными серверами по ssh есть много вещей, которые могут фрустрировать, но основных проблем две, и первая из них принципиально неразрешима в рамках ssh:

  1. При высоком round-trip latency (>100 ms) пользовательский ввод появляется с ощутимой задержкой, а при использовании мобильного интернета с edge (latency 1000 ms) работа становится подобна пытке
  2. При временных проблемах (несколько минут) с доставкой пакетов, соединение может порваться с write failed: broken pipe, причем узнаете вы об этом только при попытке ввода или при использовании настроек вроде keepaliveinterval


Первая проблема неразрешима потому, что ssh by-design является просто транспортом для байтов, и существующие приложения на это поведение расчитывают. Поскольку ssh не пытается интерпретировать этот поток байтов, он не может осуществлять предиктивный ввод. Лично для меня именно эта проблема наиболее актуальна, поскольку мне приходится работать с серверами в европе и США, и во втором случае задержка составляет около 200 мс и является принципиально неустранимой, по крайней мере до изобретения квантовой коммуникации или чего-нибудь подобного. Вторая же проблема проявляется в наших условиях относительно редко, но всё же неприятно переустанавливать все соединения при сбоях сети (и перезапускать упавшие приложения, если они почему-то не были запущены в screen).

Читать дальше →
Всего голосов 97: ↑89 и ↓8+81
Комментарии59

На что обратить внимание ИТ-руководителю

Время на прочтение2 мин
Количество просмотров23K
Сегодня мы решили заглянуть в один из тредов на Hacker News и проанализировать тематическое обсуждение проблемы, связанной с переходом к управленческой работе ИТ-специалистов.

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

Хороший менеджер – ленивый менеджер

Время на прочтение3 мин
Количество просмотров110K
Случалось ли вам наблюдать, как руководитель проекта с самого его начала постоянно занимается пожаротушением, полностью погружен в борьбу с неотложными проблемами, темп поступления которых превышает скорость их решения. Все задачи, которые получает команда проекта, имеют наивысший приоритет и срочность: «Это надо было сделать еще вчера!» Трудовой героизм. Постоянные сверхурочные. Субботники. Авралы. Обучение, анализ, планирование, проектирование, тестирование, рефакторинг – «это все потом!».

Знакомо?

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

Проблема большинства проектов разработки ПО заключается не в том, что люди мало трудятся, а в том, что они делают не ту работу, которую нужно делать. Хороший менеджер должен руководствоваться фундаментальным принципом наименьшего действия и, следовательно, быть ленивым. И у него все получится. Почему?
Читать дальше →
Всего голосов 90: ↑82 и ↓8+74
Комментарии35

Golang и ООП

Время на прочтение5 мин
Количество просмотров133K
Если вы еще не пресытились постами в блогосфере на тему «является ли Go ООП-языком», то вот вам еще один. И краткий ответ — «да, но это не важно».
Впрочем, я постараюсь не зацикливаться на терминологии и академических определениях, а сделать акцент на том, как мы делаем это в Go.


Читать дальше →
Всего голосов 63: ↑56 и ↓7+49
Комментарии65

Новый PHP, часть 2: Scalar types

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

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

До сих пор мы говорили о типах только в отношении классов и интерфейсов. В течение многих лет мы только их (и массивы) и могли использовать. Однако же, PHP 7 добавляет возможность использовать и скалярные величины тоже, такие как int, string и float.

Но постойте. В PHP большинство примитивов являются взаимозаменяемыми. Мы можем передать "123" в функцию, которая хочет int, и довериться PHP, который все сделает «правильно». Так для чего же тогда нужны скалярные типы?
Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии94

Информация

В рейтинге
Не участвует
Откуда
New York, New York, США
Зарегистрирован
Активность