Пиратские истории

@piratestories Нравится 0
Это ваш канал? Подтвердите владение для дополнительных возможностей

Истории из мира веб-технологий и жизни.
Гео и язык канала
не указан, не указан
Категория
не указана


Гео канала
не указан
Язык канала
не указан
Категория
не указана
Добавлен в индекс
15.02.2018 01:52
реклама
Telegram Analytics
Подписывайся, чтобы быть в курсе новостей TGStat.
TGStat Bot
Бот для получения статистики каналов не выходя из Telegram
SearcheeBot
Ваш гид в мире Telegram-каналов
18
подписчиков
~0
охват 1 публикации
N/A
дневной охват
N/A
постов в день
N/A
ERR %
0
индекс цитирования
Репосты и упоминания канала
0 упоминаний канала
0 упоминаний публикаций
1 репостов
non-irony
Каналы, которые цитирует @piratestories
Откровения Витали
S0ER КОНСПЕКТ
Виталий о бизнесе
PHP.today
Почитать о дизайне
Веб-стандарты
Артемий Лебедев
Веб-стандарты
Откровения Витали
Виталий о бизнесе
Веб-стандарты
Watson's Legends 🦄
PirateStories
Последние публикации
Удалённые
С упоминаниями
Репосты
Подкаст Хекслета Q&A — специализация vs. распыление, книжные рекомендации и софт

В этом выпуске ответы на вопросы слушателей.

https://ru.hexlet.io/blog/posts/podcast_16
16: Q&A — специализация vs. распыление, книжные рекомендации и софт - Блог - Hexlet.io
В сегодняшнем выпуске отвечаю на вопросы слушателей. 1. Специализация vs. распыление >Всегда с энтузиазмом начинаю заниматься чем-то новым, но когда улавливаю суть, становится неинтересно. Понятно, что можно изучать любую тему до бесконечности и углубляться в детали, но когда не остается ничего принципиально нового, хочется заняться другим. В итоге становлюсь специалистом по всем вопро
Как добиться 100% безопасности программных продуктов

No Code

http://amp.gs/xCFN
Frontend WhiteList

Список полезных и интересных авторских статей, переводов, докладов и ресурсов на русском языке для разработчиков интерфейсов — https://github.com/melnik909/frontend-whitelist
Clean javascript code

Коллекция концепций из книги «Чистый код» c наглядными примерами их применения на JavaScript — http://amp.gs/1BoQ
Modern JS Cheatsheet

Шпаргалка Мануэля Бедру по современному JS: простыня 38 795 пикселей высотой, которую полезно иметь под рукой — mbeaudru.github.io/modern-js-cheatsheet

Перевод — https://github.com/mbeaudru/modern-js-cheatsheet/blob/master/translations/ru-RU.md
Understanding the DOM, серия статей о работе с DOM средствами нативного JavaScript, от поиска элементов до внесения изменений — https://www.digitalocean.com/community/tutorial_series/understanding-the-dom-document-object-model
Attached file
Attached file
Web developer on linux

Обновил гайд. Удалил неактуальный материал и добавил новый. Появились разделы "Архитектура", "Книги", "Ресурсы" и "Дизайн".

http://telegra.ph/Kak-stat-veb-razrabotchikom-s-pomoshchyu-YouTube-Moj-opyt-02-09
Как стать веб-разработчиком с помощью YouTube. Мой опыт.
Есть отличные гайды по построению стратегии изучения веб-технологий. По программированию в целом - цикл статей "Три пути программиста: хороший, плохой, злой". По фронтенду - серия статей, из двух частей "От нуля до героя фронтенда". По бэкенду (php) - учебник "PHP: Правильный путь". По базам данных подойдет любая книжка, в принципе. Например, "SQL. Полное руководство" Где учиться программированию? Рекомендую три ресурса. Не только за качество, но и за наличие практических заданий. Hexlet Stepik Дмитрий Елисеев…
Рекурсия vs. какой-то процесс

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

Рекурсивный процесс постоянно говорит «я это запомню и потом посчитаю» на каждом шаге рекурсии. «Потом» наступает в самом конце.

Итеративный процесс постоянно говорит «я сейчас посчитаю все что можно и продолжу» на каждом шаге рекурсии. Ему не нужно ничего запоминать вне вызова, он всегда считает все в первый возможный момент, и каждый шаг рекурсии может существовать в изоляции от прошлых, потому что вся информация передается из шага в шаг.

https://ru.hexlet.io/courses/programming-basics/lessons/iterative_process/theory_unit

урок:
https://www.youtube.com/watch?v=0Yn_O-t94Ko
Читать полностью
Матрица компетентности от hexlet

Наглядная матрица компетентности программиста поможет вам адекватно оценить уровень своих навыков, и понять, куда двигаться дальше и что учить.

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

https://ru.hexlet.io/blog/posts/infographics-programmer-competency-matrix

Документ:
https://goo.gl/CS5Kd3
Читать полностью
Design Patterns

Проект, собравший набор известных шаблонов проектирования (паттернов) и некоторые примеры их реализации в PHP. Каждый паттерн содержит небольшой перечень примеров (большинство из них для ZendFramework, Symfony или Doctrine).

Ссылка проекта
http://designpatternsphp.readthedocs.io/ru/latest/

И еще немного ссылок по паттернам:

Небольшая статья
http://devacademy.ru/posts/shablony-proiektirovaniia-v-php/

Курс на YouTube
https://www.youtube.com/playlist?list=PLmqFxxywkatTBkCujXqT7ZmYs96rOpsdl

Еще ресурс
https://refactoring.guru/ru/design-patterns/catalog

Вебинар от Хекслет: Что такое паттерны
https://www.youtube.com/watch?v=wX6BBaQZpzE

Design patterns implemented in Java
https://github.com/iluwatar/java-design-patterns

Книги
1. Банды Четырех «Паттерны проектирования»
2. Паттерны проектирования (Head First O'Reilly)
Читать полностью
Функциональное программирование или ООП?

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

http://www.elisdn.ru/blog/95/functional-vs-oop
Читать полностью
Подробнее про PSR

Оригинал:
https://github.com/php-fig/fig-standards/tree/master/accepted

Перевод PSR 0-4:
https://github.com/getjump/fig-standards/tree/master/accepted

Статья "PSR-7 в примерах":
https://habrahabr.ru/post/250343/

Cтатья "Опыт внедрения PSR стандартов в одном легаси проекте" (PSR-7, PSR-11):
https://habrahabr.ru/post/337692/

*
Стандарты PSR

Поддержка PSR (PHP standart recommendation) стандартов позволяет обеспечивать совместимость, что облегчает и ускоряет разработку конечного продукта.

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

Стандарты PSR, которые официально приняты, т.е. находятся в статусе Accepted:

PSR-1. Основной стандарт кодирования

Он представляет собой наиболее общие правила, такие как, например, использование тегов PHP, кодировка файлов, разделения места объявления функции, класса и места их использования, именование классов, методов.

PSR-2. Руководство по стилю кода

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

PSR-3. Интерфейс протоколирования

Этот стандарт разработан для того, чтобы обеспечить (журналирование) логирование в приложениях, написанных на PHP.

PSR-4. Стандарт автозагрузки

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

PSR-6. Интерфейс кеширования

Кэширование используется для повышения производительности системы. И PSR-6 позволяет стандартно сохранять и извлекать данные из кэша, используя унифицированный интерфейс.

PSR-7. Интерфейс HTTP-сообщений

При написании мало-мальски сложных сайтов на PHP, почти всегда приходиться работать с HTTP заголовками. Конечно, язык PHP предоставляет нам уже готовые возможности для работы с ними, такие как суперглобальный массив $_SERVER, функции header(), setcookie() и т.д., однако их ручной разбор чреват ошибками, да и не всегда можно учесть все нюансы работы с ними. И вот, чтобы облегчить работу разработчику, а также сделать единообразным интерфейс взаимодействия с HTTP протоколом был принят данный стандарт. Более подробно об этом стандарте я расскажу в одной из следующих статей.

PSR-11. Интерфейс контейнера

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

PSR-13. Гипермедиа ссылки

Данный интерфейс призван облегчить разработку и использование прикладных программных интерфейсов (API).

PSR-14. Интерфейс простого кэширования

Является продолжением и улучшением стандарта PSR-6

Источник: https://myrusakov.ru/php-psr-standards.html
Читать полностью
Почему функция «возвращает» значение?

Изучающие программирование часто удивляются: почему функция «возвращает» результат? Почему именно такое странное слово — «возврат»? Как будто мы сначала даём ей результат, а потом она его возвращает обратно.

Понятно, что это не так. Мы даём функции аргументы (а иногда и вообще не даём ничего), а она даёт нам в ответ какую-то информацию… А иногда не даёт! Тогда мы говорим «они ничего не возвратила».

Странно!

Дело в том, что return означает не возврат информации, а возврат управления.

При вызове функции текущий код становится на паузу и передаёт управление в функцию. Функция делает свои дела и возвращает управление в то место, где происходил вызов. И заодно может отправить какую-то информацию туда.

Что за управление? Управление той штукой, которая исполняет код. Грубо говоря — управление компьютером. Код передаёт функции пульт управления компьютером, а функция потом возвращает его обратно.

const sum = (a, b) => {
const answer = a + b;
return answer;
}

Мы привыкли читать подобный код как «функция возвращает значение answer», но правильнее будет читать «функция возвращает управление в место вызова и отправляет туда значение answer».

Именно поэтому внутри функции возможен такой код:

...
return;
...

Здесь функция не «возвращает ничего», а «возвращает управление в место вызова и не отправляет туда никакую информацию».

Источник: https://ru.hexlet.io/blog/posts/why-return
Читать полностью