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

@piratestories Like 0
Is this your channel? Confirm ownership for additional features

Истории из мира веб-технологий и жизни.
Channel's geo & Language
not specified, not specified
Category
not specified


Channel's geo
not specified
Channel language
not specified
Category
not specified
Added to index
15.02.2018 01:52
advertising
TGStat Bot
Bot to get channel statistics without leaving Telegram
SearcheeBot
Your guide in the world of telegram channels
Telegram Analytics
Subscribe to stay informed about TGStat news.
18
members
~0
avg post reach
N/A
daily reach
N/A
posts per day
N/A
ERR %
0
citation index
Forwards & channel mentions
Channels quoted by @piratestories
30 Jan 2018, 18:23
PHP.today
30 Jan 2018, 18:23
30 Jan 2018, 18:23
30 Jan 2018, 18:23
29 Jan 2018, 14:22
26 Jan 2018, 15:11
24 Jan 2018, 22:45
PirateStories
8 Jan 2018, 16:11
Recent posts
Deleted
With mentions
Forwards
Подкаст Хекслета 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
Read more
Матрица компетентности от hexlet

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

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

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

Документ:
https://goo.gl/CS5Kd3
Read more
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)
Read more
Функциональное программирование или ООП?

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

http://www.elisdn.ru/blog/95/functional-vs-oop
Read more
Подробнее про 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
Read more
Почему функция «возвращает» значение?

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

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

Странно!

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

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

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

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

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

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

...
return;
...

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

Источник: https://ru.hexlet.io/blog/posts/why-return
Read more