Pull to refresh
21
0
Георгий @anatooly

Работник продовольственного склада

Send message

React: лучшие практики

Reading time19 min
Views74K


Разрабатываете на React или просто интересуетесь данной технологией? Тогда добро пожаловать в мой новый проект — Тотальный React.

Введение


Я работаю с React уже 5 лет, однако, когда дело касается структуры приложения или его внешнего вида (дизайна), сложно назвать какие-то универсальные подходы.

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

Данная статья представляет собой своего рода набор правил разработки React-приложений, доказавших свою эффективность для меня и команд, с которыми я работал.

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

Предлагаемые подходы не являются истинной в последней инстанции. Это всего лишь мое мнение. Существует много разных способов решения одной и той же задачи.
Читать дальше →
Total votes 13: ↑9 and ↓4+5
Comments6

Книги по психологической самопомощи: есть ли в них хоть какой-то смысл, и, если да, какие выбрать?

Reading time18 min
Views73K
Многие не любят психологов и психологию, но немногие отрицают наличие у людей [вообще, а не у себя лично] психологических «заморочек». На этом фоне идея разобраться с этими сложностями самостоятельно может выглядеть привлекательно. Этим пользуются авторы и издатели, предлагающие разного рода «книги по самопомощи».


Что под катом: обзор литературы, посвящённой исследованию [не]эффективности самостоятельной работы над психологическими проблемами по книгам (спойлер: эффективна, но с некоторыми оговорками), несколько списков книг, которые (опять же, с оговорками) можно для этих целей использовать.
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments44

Защищаем SSH от брутфорса на любом порту

Reading time3 min
Views112K
Сегодня меня заинтересовал опрос надо ли перевешивать SSH на нестандартный порт. Сам опрос не так интересен как способ автора zivot_je_cudo защищать SSH от подбора пароля: после неверной попытки подключения блокировать новые попытки в течение 20 секунд. Задержка, видимо, выбрана эмпирически, исходя их двух противположных пожеланий: чтобы не заблокировать в случае опечатки себя надолго, и в тоже время усложнить жизнь подбиральщика. Я хочу поделиться своим способом противодействия брут-форсу, который применяю уже несколько лет. Он имеет два преимущества:
— дает мне больше попыток для набора правильного пароля
— но при этом блокирует брутфорсеров «навечно».

Как можно достичь этих двух противоположных целей?
Читать дальше →
Total votes 114: ↑106 and ↓8+98
Comments139

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

Reading time14 min
Views202K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →
Total votes 215: ↑213 and ↓2+211
Comments74

Как я сделал самый быстрый сайт в Таиланде

Reading time8 min
Views24K

image


Предисловие


Заняться этим проектом и написать эту статью вдохновил меня "молодой и шутливый человек который ускорял страницу с reactjs". Если кто-то помнит нашумевшую в своей время статью от сайта pingdom.com, о том что "Страницы в интернете прилично обросли жиром" их вывод складывался к тому, что раньше к весу страницы в основном добавляли изображения, теперь к этому "жиру" накинули и JavaScript. Страница шутливого молодого человека не дает особой практической пользы — больше разминка для его мозгов. Я же решил помочь своей девушке с продажей самого популярного продукта из ее ассортимента.


Читать дальше →
Total votes 51: ↑41 and ↓10+31
Comments53

История одного плагина

Reading time12 min
Views7.1K

Все началось с того, что у меня перестал работать tagbar. Плагин падал с ошибкой, якобы текущая моя версия Exuberant Ctags вовсе не Exuberant. Покопавшись немного в исходниках, я понял, что последняя внешняя команда завершалась с ошибкой, а v:shell_error выдавал -1, что говорит о том, судя по документации vim'a, что "the command could not be executed". Я не стал копать дальше и установил fzf. Fzf, как и ctrlp, позволяет проводить нечеткий поиск по файлам, тегам, буферам, ..., но в отличии от последнего, работает гораздо шустрее, однако, не без минусов. Приложение работает напрямую с терминалом и каждый раз затирает мне историю вводимых команд. Это также означает, что мы не можем отобразить результаты поиска в буфере (neovim, судя по некоторым скринкастам, может), например, справа от основного буфера, когда ищем нужный тег. В отличие от sublime, fzf не придает больший вес имени файла, из — за чего я часто получал в топе вовсе не те результаты, которые ожидал увидеть. Ко всему прочему, отсутствие полной свободы в настройке цветовой схемы, что в общем-то не слишком важно для обычного пользователя, но только не для меня, с моим повышенным вниманием к мелочам. Под свободой я понимаю, как минимум, разграничение цвета для обычного (нормального) текста и строки запроса.


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

Total votes 23: ↑21 and ↓2+19
Comments18

Что делать, если вам грозят 38 млрд. (или меньше) за нарушение авторских прав

Reading time5 min
Views11K
38 млрд. рублей! Этой суммы вполне бы хватило для закрытия внешнего долга — ну, например Албании. Оказалось — это ущерб, нанесенный известным отечественным и зарубежным компаниям.
Сумма фантастическая, особенно для супружеской пары с фамилией отличное от «Абрамович». Хочу заметить, что если все и далее пойдет по строгой букве закона, с буквальным трактованием и отсутствием вопросов суда к обвинению, то сумма может вырасти.
Читать дальше →
Total votes 295: ↑277 and ↓18+259
Comments272

24-летний студент начал войну против Facebook

Reading time3 min
Views73K


24-летний студент юридического факультета Венского университета Макс Шремс (Max Schrems) вот уже несколько месяцев ведёт неравный бой с компанией Facebook. Всё началось с того, что Макс отправил несколько грамотно составленных запросов и добился-таки, что из калифорнийского офиса ему прислали CD-диск со всеми персональными данными, собранными за три года активности на сайте.

Каждый гражданин может потребовать у Facebook выдачи ему в течение 40 дней всей собранной на него персональной информации. На сайте есть специальная форма для такого запроса. Вам придёт CD с файлом PDF объёмом несколько сотен мегабайт и более 1000 страниц. Макс Шремс получил PDF из более 1200 страниц, вся информация в файле была разбита на 57 категорий (работа, образование, друзья, политические взгляды, хобби, фотографии и т.д.). Как говорит Макс, даже у КГБ не было такого полного досье на граждан.

Но самое удивительное, что среди всего прочего в присланном файле были удалённые сообщения, чат-сессии, имена бывших друзей и другие данные с пометкой deleted:true.
Читать дальше →
Total votes 323: ↑296 and ↓27+269
Comments246

Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

Reading time6 min
Views405K

Введение


Часто люди приобретают цифровые зеркальные камеры в погоне за качеством снимков, но при этом не имеют представления о технических моментах съемки. В основном это касается тех, кто до зеркалки держал в руках исключительно компактные фотоаппараты и пользовался автоматическими режимами (которые, к слову, весьма продвинутые в современных камерах).

В результате у кого-то возникает разочарование в камере и фотографии в целом, а другие проявляют терпение и пытаются освоить премудрости фотографии, чтобы раскрыть весь потенциал камеры с полноценным (или почти полноценным) сенсором.

Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Читать дальше →
Total votes 272: ↑232 and ↓40+192
Comments378

Бесплатный курс Windows Phone 7 Jump Start

Reading time1 min
Views704
Все меньше времени остается до запуска Windows Phone 7 и все больше материалов для разработчиков появляется в открытом доступе.
Напомню, что российские разработчики могут регистрироваться в Windows Marketplace уже сейчас и с первого дня запуска смогут загружать свои приложения (как платные, так и бесплатные) для покупателей телефонов из других стран. Инструменты разработки являются полностью бесплатными.
Сегодня стали доступны все материалы курса Windows Phone 7 Jump Start – это 12 часовых уроков, которые полностью покрывают технические аспекты разработки приложений под новую платформу:
Также можно загрузить материалы курса по следующей ссылке.
Total votes 79: ↑57 and ↓22+35
Comments44

Смелый стайлгайд по AngularJS для командной разработки [2/2]

Reading time6 min
Views23K
Первая часть перевода тут.

После прочтения Google's AngularJS Guidelines, у меня создалось впечатление о его незавершённости, а ещё в нём часто намекали на профит от использования библиотеки Closure. Ещё они заявили, «Мы не думаем, что эти рекомендации одинаково хорошо применимы для всех проектов, использующих AngularJS. Мы будем рады видеть инициативу от сообщества за более общий стайлгайд, применимый как для небольших так и крупных проектов».

Отталкиваясь от личного опыта работы с Angular, нескольких выступлений, а также имеющемуся опыту командной разработки, представляю Вашему вниманию этот смелый стайлгайд по синтаксису, написанию кода и структуре приложений на AngularJS.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments29

Как мы 4 года работали без офиса и жестоко обломались

Reading time6 min
Views82K

Ветеран Вьетнама пристаёт к нам с тупыми вопросами. Ему, наверное, нужен ментор.

До начала лета у нас была распределённая команда. Один просыпался в 3 утра, ставил чай на кухне и отвечал на деловые письма. Другой отводил дочку на её концерт в музыкалке, слушал её выступление, а во время других – отвечал на срочные звонки. Третий кодил в шезлонге на балконе с прекрасными видом на котлованы будущих новостроек в Люберцах.

Бухгалтерия велась на аутсорсе, юристы – тоже. Под конкретные задачи брались фрилансеры. Мы зарабатывали.

4 года мы экономили на офисе. Потом сели, посчитали и поняли, что экономили мы не на офисе, а на своей продуктивности. И разница была очень серьёзная. Так жёстко мы ещё никогда не обламывались.
Читать дальше →
Total votes 106: ↑81 and ↓25+56
Comments70

mysqlnd — проводник между PHP и MySQL

Reading time16 min
Views66K


Расширение mysqlnd появилось ещё в PHP 5.3, но до сих пор малоизвестно среди разработчиков. Однако оно незаменимо, если ваша система основана на MySQL. Если вы хотите узнать, почему это расширение так важно, что оно собой представляет, как его использовать и какие оно даёт преимущества — читайте статью.
Читать дальше →
Total votes 129: ↑116 and ↓13+103
Comments35

Лучшие практики и рекомендации по защите php-приложений от XSS-атак

Reading time5 min
Views70K

Лучшие практики и рекомендации по защите php-приложений от XSS-атак


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



Большинство уязвимостей связано с неправильной обработкой данных, получаемых извне, или недостаточно строгой их проверкой. Одной из таких уязвимостей является межсайтовое выполнение сценариев (Сross Site Sсriрting, XSS), которая может привести к дефейсу сайта, перенаправлению пользователя на зараженный ресурс, вставке в веб-ресурс вредоносного кода, краже COOKIE-файлов, сессии и прочей информации. Противостоять XSS своими сила поможет применение лучших практик и рекомендаций по безопасному программированию, о которых и пойдет речь ниже.
Читать дальше →
Total votes 52: ↑35 and ↓17+18
Comments35

Использование EXPLAIN. Улучшение запросов

Reading time10 min
Views168K
Когда вы выполняете какой-нибудь запрос, оптимизатор запросов MySQL пытается придумать оптимальный план выполнения этого запроса. Вы можете посмотреть этот самый план используя запрос с ключевым словом EXPLAIN. EXPLAIN – это один из самых мощных инструментов, предоставленных в ваше распоряжение для понимания MySQL-запросов и их оптимизации, но печальным фактом является то, что многие разработчики редко его используют. В данной статье вы узнаете о том, какие данные предлагает EXPLAIN на выходе и ознакомитесь с примером того, как использовать его для оптимизации запросов.
Читать дальше →
Total votes 39: ↑32 and ↓7+25
Comments14

Оптимизация обработки сложных селекторов

Reading time2 min
Views13K
CSS селекторы в фронтенде можно сравнить с SQL операторами в бэкенде. Не смотря на их изначальную роль в CSS, мы активно используем селекторы в нашем Javascript коде, и, учитывая декларативный стиль селекторов, они являются приоритетными кандидатами на оптимизацию.
Рассмотрим одну из них
Total votes 28: ↑20 and ↓8+12
Comments7

Шпаргалка по шаблонам проектирования

Reading time2 min
Views1.4M

Перевод pdf файла с сайта http://www.mcdonaldland.info/ с описанием 23-х шаблонов проектирования GOF. Каждый пункт содержит [очень] короткое описание паттерна и UML-диаграмму. Сама шпаргалка доступна в pdf, в виде двух png файлов (как в оригинале), и в виде 23-х отдельных частей изображений. Для самых нетерпеливых — все файлы в конце статьи.

Под катом — много картинок.

Читать дальше →
Total votes 192: ↑179 and ↓13+166
Comments66

Почему не нужно использовать RJS

Reading time1 min
Views12K
У jQuery есть встроенная фича — если сервер ответит с content-type=text/javascript библиотека выполнит ответ автоматически.

jQuery.ajaxSetup({
	accepts: {
		script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
	},
	contents: {
		script: /(?:java|ecma)script/
	},
	converters: {
		"text script": function( text ) {
			jQuery.globalEval( text );
			return text;
		}
	}
}); 



Поэтому в рельсах довольно распространена тактика «ответь строчкой Javascriptа вместо правильного JSON, который придется обрабатывать».

Читать дальше →
Total votes 44: ↑34 and ↓10+24
Comments16

Продающий дизайн интернет-магазина. Часть 2. Элементы интерфейса

Reading time7 min
Views73K
Вторая часть статьи из цикла «Продающий дизайн интернет-магазина». Для тех, кто пропустил первую, её можно прочитать тут: «Продающий дизайн интернет-магазина. Часть 1. Аналитика». Сегодня я расскажу про разные части интерфейсов магазинов, которые важны для конверсии и продаж. Постараюсь обозначить какие элементы должны быть в шапке и футере сайта, на главной странице, на странице каталога и многое другое.

Логотипы крупнейших интернет-магазинов
Читать дальше →
Total votes 58: ↑41 and ↓17+24
Comments10

Почему 98% текстов на ваших сайтах не работают. Вообще. И как это починить

Reading time7 min
Views284K

Вот так люди видят вашу страницу

Привет!
Проблема вот в чём. Если зайти на практически любой сайт интернет-магазина или компании с услугами, вы встретите контент. Точнее — отвратительные тексты, которые писали, кажется, маркетологи, воспитанные сеошниками.

Разумеется, можно не делать, как они. Если работать по-умному, то вы поможете и читателям по жизни, и себе в продажах.

По моим примерным подсчётам (усреднение с ряда позиций), конверсии для нас выглядят так:
  • Только название и картинка — около 1,5%.
  • С описанием от производителя — чуть более 2%.
  • С описанием человека, который держал это в руках и знает правила — около 6%.

Ниже — рассказ про то, как мы доводили время на сайте от 3 минут сначала до 6:40, а потом до 20:48. Да-да, двадцати минут сорока восьми секунд для среднего посетителя. Честного среднего, с учётом отказов и по полной выборке.
Читать дальше →
Total votes 294: ↑282 and ↓12+270
Comments121
1
23 ...

Information

Rating
Does not participate
Registered
Activity