PHP-Watcher: инструмент, который упрощает разработку долгоживущих приложений
20 ноября 2019 от https://habr.com/ru/company/skyeng/blog/475624/


Мы любим PHP за простоту: ты пишешь код, обновляешь страницу в браузере и сразу видишь изменения. Но если дело доходит до консольных команд, которые могут быть долгоживущими процессами, — например, если мы пишем асинхронный HTTP-сервер для загрузки файлов, — разработка может оказаться весьма болезненной.

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

Это как Nodemon, но на PHP

Некоторое время я сам использовал Nodemon. Это инструмент из мира Node.js, однако если его немного поднастроить, можно использовать и с PHP-скриптами. Но ведь на самом деле я не хочу устанавливать Node.js и тащить кучу неизвестных мне NPM-пакетов в своё асинхронное PHP-приложение, чтобы перезапускать его.

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

Прошел месяц: с PHP-Watcher вам больше не нужно устанавливать Nodemon или любой другой пакет NPM для разработки вашего долгоживущего PHP-приложения.

Вот так это работает

Библиотеку можно установить через Composer:

composer global require seregazhuk/php-watcher

Представим, что мы работает над долгоживущим приложением на основе Symfony. Точка входа в наше приложение — файл public/index.php. Мы хотим отслеживать изменения в папках src и config. Еще мы хотим, чтобы приложение автоматически перезапускалось, как только мы изменим исходный код или параметры конфигурации. Вот как можно решить эту задачу:

php-watcher public/index.php --watch src --watch config

Команда запустит скрипт public/index.php, который начнёт отслеживать изменения в директориях src и config. Как только в любой из них изменится файл, PHP-Watcher перезапустит скрипт.

По умолчанию он отслеживает изменения только в PHP-файлах. Но Symfony хранит свои конфиги в yaml. Поэтому нам нужно явно указать “вотчеру”, чтобы он отслеживал как PHP, так и yaml-файлы. Делается это с помощью опции --ext:

php-watcher public/index.php --watch src --watch config --ext php,yaml

Допустим, мы поняли, что нам не нужно перезапускать приложения при любых изменениях внутри директории src. Например, нам бы хотелось игнорировать изменения в поддиректории src/Migrations. В этом случае можно воспользоваться опцией --ignore:

php-watcher public/index.php --watch src --watch config --ext php,yaml --ignore Migrations

Теперь PHP-Watcher начнёт отслеживать изменения в директориях src и config, но будет игнорировать любые изменения внутри поддиректории Migrations. Кроме того, он по умолчанию игнорирует изменения во всех dot- и VCS-файлах.

“Вотчер” поддерживает настройку своего поведения не только через опции командной строки, но и через файлы конфигурации. Если не хочется каждый раз в командной строке передавать кучу опций и параметров, то можно создать файл конфигурации .php-watcher.yml. Например, предыдущую команду можно заменить следующим конфигурационным файлом:

watch:
  - src
  - config
extensions:
  - php
  - yaml
ignore:
  - Migrations

Имея такой файл, мы можем просто активировать “вотчер”, указав лишь PHP-скрипт, который нужно перезапускать. Все остальные настройки будут взяты из файла:

php-watcher public/index.php

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

По умолчанию PHP-Watcher использует исполняемый файл PHP, чтобы запустить скрипт. Мы пишем в терминале команду:

php-watcher public/index.php

Под капотом создается дочерний процесс с командой php public/index.php. В большинстве случаев это то, что нужно. Однако если в вашем окружении иной исполняемый файл, можно явно указать, какую команду следует выполнить. Например, когда у нас есть несколько версий PHP в одной системе, а мы хотим запускать наше приложение с исполняемым файлом php7.4, можно воспользоваться опцией --exec и указать свой исполняемый файл:

php-watcher public/index.php --exec php7.4

То же самое через файл конфигурации:

watch:
  - src
  - config
executable: php7.4

PHP-Watcher автоматически не перезапускает приложение, если оно упало. В dev-окружении в этом и нет особой необходимости — ведь пока мы разрабатываем новое приложение, это нормально, что иногда оно будет крашиться. Если приложение упало (завершилось с кодом, отличным от 0), “вотчер” даст нам об этом знать. Как только мы пофиксим код, изменения будут обнаружены в исходниках — и приложение перезапустится.

Спасибо за внимание! Больше информации о PHP-Watcher можно найти на домашней странице проекта на GitHub. В документации описаны основные паттерны использования. Проект пока ещё находится в стадии разработки, но API уже довольно стабильный. Буду рад, если воспользуетесь.

P.S. Не стесняйтесь оставлять отзывы и пожелания через issue на GitHub.

Авторское право:
Ключевые слова:
Quit 
Бесполезный сервис и сайт 2ip.ru худший ресурс для проверки 0
Раньше еще что то на этом сайте работала, теперь это полный отстой.
Не советую им пользоваться, только убьете свое время и введет вас в заблуждение по отчету...

Узнать CMS сайта. Определить на какой CMS работает сайт.

Так что мой вердикт - 2ip.ru - это худший сайт и сервис для определения CMS сайтов или любой другой информации о сайте.
Не пользуйтесь этим заброшенным ресурсом 2ip.ru

Авторское право:
Контент:
Содержание:
Quit 

HOSTiQ хостинг в Украине номер 1

Доступный хостинг HOSTiQ, хостинг в Украине номер 1

Screenshot_24.png

Возможно кто-то из вас ищет именно Хороший и надежный хостинг с доступными ценами, для своего первого сайта, кто увлекается сайтами, web разработкой, программированием, ищет себе Хостинг для размещения, создания или запуска своего сайта, блога, может для создания своего проекта или хочет создать свой бизнес или интернет сервис, а может и создать свой интернет магазина, тогда эта публикация (тема), вам будет актуальна и вы останетесь довольны моим предложением.

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

И так начнем, расскажу кратко, может будет интересно почитать и определится для себя...

Сразу скажу, это не проплаченная публикация и не реклама, хочется помочь тем, кто еще не слышал об этом Хостинге, так как сам совсем случайно наткнулся на него!

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

Как по мне, на данный момент HOSTiQ это самый оптимальный  Хостинг, сайт еще ни разу не ложился за два года, это рекорд для меня лично, очень хорошо подойдет для: стартапа, большого и малого бизнеса, больших и серьезных проектов, запуск социальной сети, интернет магазин, веб сервиса, новостного портала и так далее...

У меня есть два сайт и естественно они работают на хостинге HOSTiQ.

Свой первый сайт на созданном домене, запустил еще лет 5 назад, но в то время, был запущен на другом Хостинге, тогда я только начинал пробовать различные варианты Хостинга и изучать все об этом деле...

Позже к моему счастью, года два назад я узнал об HOSTiQ и перешел на него не задумываясь! Хотя этот хостинг был запущен и создан 2013 году :)

После, я выбрал себе подходящий тариф на HOSTiQ,  и уже на него 15.07.2018 перенес свой сайт. 

Плюсы этого хостинга в том, что у него хорошая тех. поддержка, лояльные цены и тарифы, отличные консультанты в онлайн чате, надежный и стабильный в работе, хорошая скорость, мощное железо (даже для самого дешевого тарифа), хороший выбор различных видов хостинга от Виртуального до VPN и Облачного..., постоянные акции и бонусы!

Из недостатков: еще не обнаружил. :)

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

https://hostiq.ua/clients/aff.php?aff=3341&lid=3

А так же есть конструкторы для создания web сайта без знания языка программирования(сайт своими руками за полчаса), есть список доступных бесплатных CMS для установки и запуска прямо из панели управления в два клика на свой домен-хостинг, начиная от блога, интернет магазина, сайт-визитка, новостной портал, галлереи и множество других cms до мощных и бесплатных CRM систем для управления бизнесом!

Сейчас на Хостинге проще и легче запустить свой сайт или интернет магазин не зная язык программирования, чем платить WEB Студии за то, что уже есть или можно сделать самому ;)

Ты можешь зарегистрироваться на HOSTiQ и получить 30 дней бесплатного, пробного периода и в этот момент тебе сможет помочь и подсказать Онлайн консультант в любое время суток.

Так что переходи по ссылке https://hostiq.ua/clients/aff.php?aff=3341&lid=3 и создай свой бизнес уже сейчас!

ЗАБЫЛ САМОЕ ГЛАВНОЕ! ДЛЯ СТУДЕНТОВ ХОСТИНГ НА ГОД + ДОМЕН В ПОДАРОК ЗА КОПЕЙКУ!

Вы можете заказать Хостинг со скидкой от 30% это моя скидка ;)

Что для этого нужно:

1) Перейдите по реферальной ссылке

2) При заказе Хостинга укажите скидку:

MY2-DEYD9A6Q0M

(примените на форме заказа)

Скидка составляет 30% — чем дольше период оплаты, тем больше сумма скидки!

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

Всем удачи )

Авторское право:
Ключевые слова:
Andrew 
Наиболее популярные языки программирования 2019 0
Сайты Популярность:
Уникальные посетители в месяц - 1,600,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - C, C++, Go, Java, Python
База данных - BigTable, MariaDB
Уникальные посетители в месяц - 1,100,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - Hack, PHP (HHVM), Python, C++, Java, Erlang, D, Xhp, Haskell
База данных - MariaDB, MySQL,HBase Cassandra
Уникальные посетители в месяц - 1,100,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - C, C++, Python, Java, Go
База данных - Vitess, BigTable, MariaDB
№4 Yahoo:
Уникальные посетители в месяц - 750,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - PHP
База данных - MySQL, PostgreSQL,VB.NET
Уникальные посетители в месяц - 500,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - Java, C++, Perl
База данных - Oracle Database
№6 Wikipedia.org:
Уникальные посетители в месяц - 475,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - PHP, Hack
База данных - MySQL, MariaDB
Уникальные посетители в месяц - 290,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - C++, Java, Scala, Ruby
База данных - MySQL
№8 Bing:
Уникальные посетители в месяц - 285,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - ASP.NET
База данных - Microsoft SQL Server
№9 eBay.com:
Уникальные посетители в месяц - 285,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - Java, JavaScript, Scala
База данных - Oracle Database
№10 MSN.com:
Уникальные посетители в месяц - 280,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - ASP.NET
База данных - Microsoft SQL Server
№11 Microsoft:
Уникальные посетители в месяц - 270,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - ASP.NET
База данных - Microsoft SQL Server
Уникальные посетители в месяц - 260,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - Java, JavaScript, Scala
База данных - Voldemort
№13 Pinterest:
Уникальные посетители в месяц - 250,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - Django, Erlang
База данных - MySQL, Redis
Уникальные посетители в месяц - 240,000,000
Front-end (Клиентский) - JavaScript
Back-end (Серверный) - PHP, JavaScript (Node.js)
База данных - MariaDB, MySQL
Авторское право:
Содержание:
losper 
Альфа-Банк!
И так «опять 25-ть»…

Небольшое предисловие:

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

Так как, только что, снова позвонили на мой личный номер, за чужой кредит…
Собирают информацию, спрашивают кто я, кем являюсь, вообще совесть и рассудок потеряли…
Я снова девочке говорю, что мой номер должен был быть удален из чужих договоров которые мне не принадлежат, а они говорят что он не удален.
Говорю, что мне сообщение от Альфа-банк пришло, где написано:

«Шановний Клієнте! Ваш запит щодо отримання дзвінків по договорам, що вам не належать виконано – (096) ***-**-** відключено від інформування. Вибачте за незручності.»
P.S. Здесь я естественно номер заменил на *** так как розумно и надеюсь понятно почему ;)

А она говорят мне, странно…
Это вообще какое то беззаконие, я считаю, что нужно попросту собираться и вызывать полицию!
Ранее и по сей день все еще актуальный отзыв и моя жалоба, а точнее 2-ве жалобы не рассмотрены и проигнорированы по «красивому».

Дублирую актуальный отзыв, пусть все знают:

В первую очередь, набрали некомпитентных малолеток в колл центры и отдел по зысканию кредитных задолженностей, звонят и на просьбы ни как не реагируют а только провоцируют и ещё больше злят.
Во вторую очередь, собирают ваши данные без вашего согласия и без вашего разрешения.
Сохраняют ваши данные в чужих договорах, не перепроверяют данные, которые другие люди указывают в кредитных договорах.
Потом начнут вам звонить по чужим договорам, а вы и не знали, что кто то указал ваши личные данные в своём договоре и начнётся у вас «весёлая жизнь». Этим самым Альфа-Банк нарушают закон по поводу конфиденциальных данных.
Все есть в открытом доступе и в конституции Украины.
Так что с вами они не считаются а вот как кто то нарушает ихний договор, так сразу начинают звонить, жаловаться и возмущаться.
На жалобу которую я написал в Альфа-Банке, никакой реакции, на просьбу удалить мой номер из чужого договора.
Не реагируют на горячей линии, по просьбе — не звонить мне по чужим кредитам и задолжностям и на просьбу удалить мой номер.
Сегодня пришёл снова в Альфа-Банк в г. Днепр и ещё раз аписали жалобу, только уже сотрудник банка от моих слов.
Если будет банк игнорировать дальше, буду собирать сообщество и массово писать жалобу в прокуратуру и судебные инстанции а также соберу людей и будем стучать касками возле Альфа-банка как это делают возле Приват Банка. Раз они игнорируют законы, мы будем пользоваться законом и судиться за личное право и за моральный ущерб.
Хватит беззакония.
— Собираться будем и писать массово жалобы в прокуратуру, суд. Пусть выплачивают за моральный ущерб!
Будем тогда с вами судиться, раз вы не судитесь с клиентами и названиваете и вторгаетесь в лючную жизнь других людей, которые не касаются данных вопросов и проблем.
На днях я буду идти с девушкой в ближайшее отделение Альфа-Банк с полицией или приду и будем вызывать полицию в отдел Банка, может еще получится вызвать телевидение, главное собраться с людьми по той же причине!
Авторское право:
Контент:
Содержание:
Andrew 
Как создать текстовый  документ в Windows 10
Горячие клавиши для создания текстового документ в Windows 10
Быстро создать текстовый документ в Windows 10

Почему я сделал такое описание выше?
Я вводил все эти запросы, что указал выше в Google и "ничерта" не нашел, поэтому понял, что многие не могут найти в Google - как создать текстовый документ и решил упростить, улучшить поиск, опубликовав здесь ответ и не пудрить голову людям, как это делают 75% сайтов в статьях и публикаций!

Вот ответ:

Я НЕ НАШЕЛ :)
Авторское право:
Контент:
Andrew 
Полный курс по C# бесплатно 0
Всем привет!

Скоро выложу Бесплатно полный курс по C# от школы Обучения.
Огромное количество бесплатных видео уроков по C#
84 лекции по C# бесплатно.

Вы можете ознакомиться со списком уроков:

Раздел видео-курса: 01 C# Starter 1:43:37

    Общие сведения о языках программирования 0:00:33
    История развития языка C# 0:08:35
    Какие программы можно писать, используя язык C# 0:13:20
    Преимущества языка C# 0:25:10
    Обзор среды разработки Visual Studio 0:27:15
    Алгоритм создания программы на языке C# 0:28:12
    Консольные приложения 0:36:20
    Оконные приложения 1:13:35
    Web приложения 1:36:40

Раздел видео-курса: 01 C# Starter Часть 2 1:40:27

    Понятие бит и байт 0:02:05
    Другие единицы измерения информации 0:11:20
    ОЗУ (RAM) 0:12:55
    Процессор (CPU) 0:15:50
    Варианты хранения информации в ОЗУ 0:17:53
    Системы счисления 0:20:30
    Переменные 0:53:20
    Типы данных 1:03:45
    Примеры создания переменных 1:07:00
    Простые типы и их псевдонимы 1:13:00
    Целые типы 1:14:20
    Вещественные типы 1:21:08
    Десятичный тип 1:24:50
    Логический тип 1:26:42
    Символьный тип 1:28:43
    Строковый тип 1:30:17
    Значения по умолчанию 1:32:00
    Применение типов float, double, decimal 1:34:50
    Тип char в 16-ричном формате и формате unicode 1:37:00

Раздел видео-курса: 01 C# Starter Часть 3 2:10:04

    Переменные 0:01:05
    Ключевые слова 0:13:45
    Константы 0:18:40
    Преобразование значений типов(кастинг) 0:26:00
    Арифметические операторы 0:55:40
    Области видимости 1:23:10
    Использование ключевых слов как идентификаторов 1:31:35
    Проверка и запрет проверки переполнения 1:35:30
    Сцепление строк 1:45:45
    Форматированный вывод 1:48:15
    Флаги форматирования строк 1:52:00
    Неявно типизированные переменные 1:57:10
    Сравнение значений разных типов 2:04:05

Раздел видео-курса: 01 C# Starter Часть 4 1:23:07

    Что такое условные конструкции 0:00:30
    Условная конструкция if 0:03:15
    Условная конструкция if – else 0:09:20
    Тернарный (третичный) оператор 0:26:30
    Условная конструкция switch – case 0:56:38
    Краткое повторение рассмотренной темы 1:21:15

Раздел видео-курса: 01 C# Starter Часть 5 2:13:12

    Логика 0:01:00
    Логические операции 0:03:25
    Конъюнкция 0:05:25
    Дизъюнкция 0:09:05
    Исключающее или 0:14:20
    Отрицание 0:16:05
    Битовые логические операции 0:19:40
    Побитовое «И» 0:27:00
    Побитовое «ИЛИ» 0:28:54
    Побитовое «Исключающее ИЛИ» 0:30:40
    Побитовое отрицание 0:32:15
    Двоичная арифметика 0:35:35
    Примеры использования логических операций 0:58:15
    Побитовые логические операции 0:58:15
    Работа с портами (конъюнкция и дизъюнкция) 1:05:23
    Исключающее ИЛИ (пример использования) 1:25:45
    Логические операции 1:32:00
    Операции сдвига 1:38:42
    Короткозамкнутые вычисления 2:00:18
    Теоремы Де Моргана 2:05:50

Раздел видео-курса: 01 C# Starter Часть 6 1:29:59

    Схема работы циклов 0:01:00
    Оператор безусловного перехода (goto) 0:03:30
    Цикл с предусловием (while) 0:19:55
    Использование циклической конструкции while 0:23:10
    Цикл с постусловием (do-while) 0:39:10
    Примеры использования цикла do-while 0:42:05
    Цикл со счетчиком (for) 0:56:05
    Использование циклической конструкции for 1:00:20
    Вложенный цикл for 1:05:05
    Алгоритм Дейкстры (Цикл Дейкстры) 1:12:00
    Цикл Паук 1:18:16
    Упрощенный цикл Паук 1:26:28
    Бесконечные циклы 1:28:15

Раздел видео-курса: 01 C# Starter Часть 7 1:54:51

    Что такое методы? 0:00:00
    Создание методов 0:12:00
    Функции и процедуры 0:30:33
    Примеры создания методов 0:37:50
    Пример правильного множественного возврата из метода 0:59:13
    Использование сторожевых операторов 1:05:40
    Методы с изменяемыми параметрами 1:12:20
    Методы с выходными параметрами 1:27:30

Раздел видео-курса: 01 C# Starter Часть 8 1:32:33

    Перегрузка 0:00:50
    Аргументы (параметры) 0:19:20
    Использование именованных параметров 0:24:15
    Перегрузка методов.Именованные параметры 0:26:55
    Использование опциональных параметров 0:31:00
    Метод Main() 0:44:05
    Перегрузка метода Main() 0:53:40
    Рекурсия 1:00:50
    Сложная рекурсия 1:20:30
    Примеры использования рекурсии 1:24:50

Раздел видео-курса: 01 C# Starter Часть 9 1:55:41

    Что такое массив? 0:00:55
    Индекс массива 0:17:13
    Использование одномерных массивов 0:18:45
    Создание одномерных массивов 0:28:05
    Двумерные массивы 0:45:45
    Использование двумерных массивов 0:58:25
    Массивы состоящие из одного элемента 1:06:20
    Трехмерные массивы 1:08:15
    Использование трехмерных массивов 1:15:50
    Четырехмерные массивы 1:23:45
    Зубчатые массивы 1:28:42
    Использование зубчатых массивов 1:33:40
    Ключевое слово params 1:42:40

Раздел видео-курса: 11 Видео курс HTML & CSS 0:53:06

    Введение 0:00:00
    История развития 0:01:08
    Основной синтаксис 0:02:30
    Просмотр информации о страницы (пример) 0:06:52
    Основные элементы 0:12:04
    Создание комментариев 0:16:25
    Теги <br>, <pre>, <p> 0:18:27
    Атрибут align 0:24:28
    Тег заголовка h1-h6 0:26:00
    Тег <hr> 0:28:21
    Атрибут color, width, size, noshadow 0:29:04
    Текстовые теги(strong, big, small, b, i, em, sub, sup) 0:31:08
    Тег center 0:37:45
    Тег MARQUEE 0:38:34
    Атрибут style 0:40:10
    Ссылки(Тег <a>, атрибут href, атрибут target, атрибут title) 0:42:10
    Send mail 0:47:07
    Атрибут name для ссылок 0:48:22
    Якорь 0:48:58

Раздел видео-курса: 12 JavaScript Essential 2:15:36

    Вступление. Что такое JavaScript 0:00:00
    Клиентский JavaScript 0:06:32
    Инструменты разработки для JavaScript 0:18:23
    Пример подключения сценария 0:25:24
    Лексическая структура JavaScript 0:38:51
    Типы данных 1:00:17
    Пример alert, prompt, confirm 1:25:04
    Пример арифметических операторов 1:37:10
    Пример специальные простые операторы 1:49:18
    Пример логические операторы «И», «ИЛИ» 2:08:10
    Home work 2:13:18

День 1. Раздел видео-курса: 02 C# Essential 3:06:55

    ООП 0:00:00
    Класс 0:30:52
    Объект и экземпляры 0:34:00
    Примеры создания классов 1:11:50
    Использование методов доступа к закрытым полям 1:25:00
    Использование свойств для доступа к закрытым полям 1:50:00
    Свойства с одним методом доступа 2:06:20
    Конструктор 2:10:18
    Конструкторы, вызывающие другие конструкторы 2:25:35
    Передача экземпляра класса в качестве аргумента 2:33:50
    Автоматически реализуемые свойства 2:36:00
    Создание экземпляра по слабой ссылке 2:44:05
    Стили использования классов 2:47:00
    Инкапсуляция 2:57:10

День 2. Раздел видео-курса: 10 TDD - Разработка через тестирование 1:05:39

    Введение 0:00:00
    Что такое Unit тест? 0:01:42
    Интеграционные тесты 0:03:16
    Что такое TDD? 0:04:54
    Знакомство с Unit-test Framework 0:07:00
    Знакомство с NUnit Framework 0:15:55

День 2. Раздел видео-курса: 10 TDD - Разработка через тестирование Часть 2 0:55:02

    Что такое внешняя зависимость? 0:00:33
    Что такое Stub объект? 0:03:22
    Паттерн Dependency Injection 0:04:38
    Способ внедрения через конструктор 0:15:23
    Способ внедрения через свойство 0:20:29
    Способ внедрения через интерфейс 0:24:23
    Способ внедрения через локальный фабричный метод 0:27:24
    Виртуальные члены и переопределения 0:30:05
    Использование паттерна «Абстрактная фабрика» 0:35:46
    DI контейнеры 0:40:53
    Использование контейнера Unity 0:45:10
    Проблема инкапсуляции 0:49:35

День 2. Раздел видео-курса: 10 TDD - Разработка через тестирование Часть 3 0:50:33

    Разделение на группы модульные тесты 0:00:10
    Определение Mock-объект 0:00:42
    Какая разница между Mock и Stub объектами 0:01:12
    Использование Mock-объекта 0:04:20
    Использование одновременно и Mock и Stub объекта 0:07:10
    Проблемы использования Mock и Stub объектов 0:11:13
    Isolation Framework 0:11:48
    Использование модели ограничения 0:22:14
    Работа с ограничением Contains 0:32:30
    Тестирование приложений использующих событийную модель 0:45:35

День 2. Раздел видео-курса: 10 TDD - Разработка через тестирование Часть 4 1:46:50
День 3. Раздел видео-курса: 02 C# Essential 1:17:25

    Частичные классы 0:00:00
    Частичные методы 0:06:18
    Работа с инкапсуляцией 0:15:05
    Поля только для чтения 0:17:50
    Язык UML 0:20:55
    Диаграммы классов 0:24:55
    Ассоциация 0:54:00
    Разновидности UML диаграмм 0:59:15
    Самоассоциация 1:05:30
    Использование техники фабричных методов 1:08:30

День 3. Раздел видео-курса: 02 C# Essential Часть 2 2:00:10

    Наследование 0:00:00
    Модификаторы доступа 0:15:20
    Связанность и связность 0:34:00
    Работа с конструктором 0:44:55
    Приведение к базовому типу 0:57:05
    Полиморфизм 1:01:20
    Замещение метода базового класса 1:17:25
    Переопределение метода базового класса 1:22:30
    Операторы is и as 1:35:18
    Герметизированные классы 1:42:37
    Герметизированные методы 1:43:45
    Подмена объектов 1:48:00

День 4. Раздел видео-курса: 02 C# Essential 1:57:50

    Понятие абстракции 0:00:00
    Абстрактные классы 0:13:55
    Ключевое слово abstract 0:20:00
    Использование абстрактных классов и методов 0:21:38
    Абстрактные методы 0:51:52
    Интерфейсы 0:52:45
    Примеры использования интерфейсов 0:56:00
    Множественное наследование абстракции 0:59:20
    Наследование интерфейса от интерфейса 1:12:00
    Наследование от интерфейсов 1:21:25
    Отличие между классом и типом 1:46:40

День 4. Раздел видео-курса: 02 C# Essential Часть 2 1:07:45

    Вступление. Массивы 0:00:00
    Создание одномерных массивов 0:06:25
    Создание двухмерных массивов 0:08:00
    Создание зубчатых массивов 0:09:10
    Абстрактный класс Array 0:09:30
    Неявно типизированные массивы 0:12:33
    Ковариантность массивов 0:15:05
    Ключевое слово params 0:22:10
    Индексаторы 0:23:40
    Примеры работы с индексаторами 0:24:50
    Виртуальные индексаторы 0:57:30

День 5. Раздел видео-курса: 02 C# Essential 1:39:37

    Статические члены 0:00:00
    Статические члены в нестатических классах 0:03:00
    Константы 0:10:00
    Статические поля и свойства 0:12:05
    Статические конструкторы 0:14:55
    Статические члены в абстрактных классах 0:31:40
    Статические классы 0:43:15
    Паттерн проектирования Singleton 0:55:20
    Расширяющие методы 1:03:15
    Вложенные классы 1:18:45
    Техника Делегирования 1:33:20

День 6. Раздел видео-курса: 02 C# Essential 1:30:45

    Вступление. Структура 0:00:00
    Примеры работы со структурами 0:04:45
    Конструкторы в структурах 0:24:50
    Пример плохого и хорошего дизайна 0:50:20
    Стек 0:56:15
    Куча 1:06:00
    Расположение структур в стеке 1:10:15
    Расположение структур на куче 1:13:10
    Наследование в структурах 1:19:55
    Вложенные структуры и классы 1:26:15

День 6. Раздел видео-курса: 02 C# Essential Часть 2 1:41:02

    Вступление. Структуры 0:00:00
    Упаковка и распаковка 0:27:50
    Структура DateTime 0:33:05
    Перечисления 0:41:00
    Получение информации о типе элементов 1:06:10
    Форматированный вывод элементов перечисления 1:16:30
    Поиск элемента перечисления по имени константы 1:23:00
    Получение информации об элементах 1:27:30
    Сравнение элементов перечисления 1:32:00

День 7. Раздел видео-курса: 02 C# Essential 1:59:15

    Создание делегатов 0:00:00
    Понятие делегатов 0:20:35
    Наследование в делегатах 0:36:40
    Комбинированные (групповые) делегаты 0:42:55
    Анонимные методы 1:04:20
    Лямбда выражения и лямбда операторы 1:18:25
    Использование нескольких делегатов 1:26:15
    Предположение делегата 1:48:45
    Рекурсия в лямбда операторах 1:50:15

День 8. Раздел видео-курса: 02 C# Essential 1:40:03

    Создание универсальных шаблонов 0:01:00
    Параметризированный метод 0:28:05
    Параметризированный делегат 0:30:20
    Ковариантность обобщений 0:35:20
    Контрвариантность обобщений 1:00:30
    Частичные классы и методы 1:16:10
    Тип Nullable 1:20:15
    Операция поглощения 1:27:05

День 8. Раздел видео-курса: 02 C# Essential Часть 2 0:57:09

    Ограничения параметров типа 0:00:55
    Ограничения параметров типа – «naked» 0:20:40
    Работа с коллекциями 0:23:55
    Словари 0:36:00
    Представление рефлектора 0:42:00

День 9. Раздел видео-курса: 02 C# Essential 1:41:29

    Понятие событий 0:00:40
    Работа с событиями 0:02:40
    Абстрактные и виртуальные события 0:55:35
    Анонимные методы в событиях 0:59:10
    Использование событий 1:01:20
    Шаблон MVP 1:15:00

День 9. Раздел видео-курса: 02 C# Essential Часть 2 2:16:40

    Многозадачность 0:00:30
    Пространство имен System.Threading 0:15:25
    Работа с потоками 0:19:25
    Использование одного метода в двух потоках 1:01:30
    Передача данных в поток 1:15:00
    Анонимные методы 1:22:30
    Основные и фоновые потоки 1:28:50
    Техника синхронизации доступа к ресурсу 1:37:10
    Критическая секция 1:42:10

День 10. Раздел видео-курса: 02 C# Essential 2:02:27

    Понятие коллекций 0:01:00
    Работа с коллекциями 0:12:05
    Цикл foreach 0:34:15
    Оператор yield 1:07:55
    Восстановление кода из под рефлектора 1:43:40

День 10. Раздел видео-курса: 02 C# Essential Часть 2 1:36:58

    Обработка исключительных ситуаций 0:00:50
    Таблица исключений 0:10:40
    Конструкция try-catch 0:20:00
    Ключевое слово throw 0:31:05
    Разработка своих пользовательских исключений 0:42:40
    Конструкция try-catch-finaly 0:48:10
    Обработка внутренних исключений 0:52:35
    Порядок обработки исключений 1:19:40

День 11. Раздел видео-курса: 02 C# Essential 1:41:51

    Базовый класс Object 0:00:40
    Метод ToString 0:06:05
    Метод GetHashCode 0:09:25
    Метод Equals 0:11:35
    Метод ReferenceEquals 0:18:35
    Метод GetType 0:25:40
    Техника клонирования 0:26:45
    Клонирование графов наследования 0:35:50
    Клонирование ассоциаций 0:43:00
    Паттерн «Prototype» 0:51:05
    Операторы языка C# 1:07:00
    Перегрузка операторов 1:15:10

День 11. Раздел видео-курса: 02 C# Essential Часть 2 1:53:42
Авторское право:
Контент:
Содержание:
Andrew 
Клиенты Новой Почты платят за воздух и коробку - Новая почта продает воздух 0
Новая Почта вынуждает платить людей за воздух и коробку для посылки!
Ну сука держитесь, Новая Почта уже в край охуели!
Пусть знает каждый человек и житель Украины и пусть понимают как их имеют
Пусть все знают, какая сейчас на самом то деле стала Новая Почта и как разводят людей на деньги... 
Новая почта продает воздух!
Я специально прикрепил фото для того, что бы вы понимали и видели, жаль только что саму куртку не сфотографировал.
В общем говоря, я в этих чеках и в самих новых правилах, которые придумали в Новой почте еще не разобрался и не уследил одну не мало важную вещь!
Пришел отправлять посылку на Новую Почту по адресу -  г. Днепр, Проспект героев 1с. Отделение Новой Почты 30.
Показал посылку кассиру, указал минимальную оценку товара, кассир - сотрудник Новой Почты взял посылку и сказал что обязательно нужно ее будет отправлять в коробке, сказал хорошо, коробка так коробка, отправляйте...
Сотрудник Новой Почты, выдал мне чек и сказал что все, ожидайте сообщение о том, когда посылку доставят в другое отделение... 
При мне товар не взвешивали, посылку не замеряли для коробки и не предлагали выбор коробки для посылки, что есть огромным минусом и не достатком Новой Почты и сотрудников, а так же обслуживания.
Но нет им прощения, таких людей купилось сотни тысяч и Новая Почта хорошо наварила денег на воздухе и макулатуре с коробкой...
Сотрудники Новой Почты не предлагают услуги, выбор услуг, возможные варианты и другое...
Я отправил куртку, всего лишь одну куртку и это не бьющийся предмет, для которого я считаю коробка не нужна.
Но! Новая Почта думает и считает, что они умнее и правильно поступают...
Оказывается коробка вышла в 19 гр. !!!
"Сраная" картонная коробка 19 гр. Это что за пиздец такой ?
Еще и обязательный пиздец и выбора у вас нет никакого, даже если вы не хотите коробку и настаиваете отправить в пакете!
Это же куртка а не техника или хрупкие предметы!
Но это еще не все, вес посылки указали весом в 10 кг.
Что...? Хотите сказать, что одна куртка весит 10 кг ????
Сотрудники Новой Почты, могли положить в меньшую коробку куртку, так как её, можно сжать и лучше сложить, но положили в коробку большего объема.
Еще сотрудники Новой Почты напихал в коробку с курткой кучу бумажек, всякой макулатуры для веса! 
За кого они людей считают, хотят больше заработать на посылке и своих бредовых и навязанных услугах, думают что раз люди уже зависимы и без Новой Почты уже никуда и не как, то они глубоко ошибаются, ой как глубоко. 
Но и не только вес от макулатуры и самой коробки...
Ну так вот, куртка вышла весом 10 кг с макулатурой, коробкой и воздухом в ней, на самом деле, одна куртка весит на много меньше, а вот вес указывают еще от объема коробки и макулатуры в ней, а так же воздух который в коробке остается после упаковки!
Новая Почта указывает вес товара от коробки и ее объема, если коробка больше объемом, тогда и больше вес, то и посылка ваша будет весить больше и платить вам придется за вес посылке на много больше. Естественно размер коробки будет больше если сотрудники Новой Почты, будут туда пихать больше макулатуры и упаковывать воздух в нее...
Так что знайте и попробуйте понять и связать - Новая Почта считает еще по мимо веса, посылки, объем посылки(, объем коробки, макулатуру в коробке и воздух!
Это развод чистой воды...
Новая Почта заставляет платить больше, платить за воздух и макулатуру стало трендом.
Теперь  клиенты Новой Почты платят за воздух и коробку и живут как стадо оленей и я попался, но рога уже с корнями снял, больше пользоваться сервисом доставки Новой Почты не собираюсь. 
Уже есть множество других служб доставки в городе Днепр, которые отправляют по всей Украине и не только по Украине, но и зарубеж!
Авторское право:
Контент:
Содержание:
Andrew 
В наше время... 0
В наше время много обмана и коррупции.

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

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

В наше время не считаются с людьми...

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

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

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

Нужно об этом писать людям, в прокуратуры, в суд и во все возможные службы, об этом нужно говорить людям, прокурору, полиции и всем возможным органам...

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

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

% за кредит огромен в стране Украины. Поэтому люди и не платят, цены завышены, поэтому люди и не покупают — и не стоит покупать и не стоит брать кредит.

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

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

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

А в Чехии и в Польше, а так же в Словакии и других приближенных Европейских странах, где зарплаты БОЛЬШЕ чем в Украине, еще раз скажу у них Зарплаты БОЛЬШЕ чем в Украине, НО: Хлеб, Молоко, Картошка, Овощи, Фрукты, Мясо, другие продукты, техника, одежда — СТОЯТ ДЕШЕВЛЕ ЧЕМ В УКРАИНЕ. Когда Украина больше по площади и в Украине больше урожая и больше плодородной земли и чернозема, а еще в Украине зарплата меньше, а цены больше! Забейте себе это в голову в тех странах, все это дешевле!

Вы готовы дальше покупать и говорить себе отговорку — но мне нужно же что то есть, есть моему ребенку?

Я не говорю что ничего покупать не стоит, можно поехать в село и купить у бабушки, можно найти в других местах…

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

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

Они сами виноваты в том, что эти дела собираются от ихнего бездействия и то, что эти дела не разбирают быстро и лежат стопками, это тоже ихняя проблема, а не проблема граждан страны и обычных людей.

Чем больше бездействия власти и государства, тем больше на них будет падать заявлений, жалоб и судебных дел!

Что бы остановить все это, нужно власти и государству, вместе с прокуратурой, суд, полицией и другими, принять закон за должное и жить по закону и конституции Украины, не нарушая его, что бы избежать: преступности, жульничества, воровства, коррупции, беззакония, убийств и избавиться и снизить до заметного минимума сотни тысяч других проблем в Украине.

От ихнего бездействия — они утонут в рутине бумажных дел и захлебнуться в своей лжи и оправдании!

И только тогда, когда по этому поводу будет продолжаться бездействие, ждать времени нет, ждать уже глупо просто навсего, ждут дураки а умные действуют, нужно собираться массово и решать вопросы в грубой форме, если закон не работает на стороне народа и власть не живет по закону, который равен для всех!
Авторское право:
Контент:
Содержание:
Пример работы с репозиторием DataTypes на гитхабе и его клонирование.
1) Fork - что бы на Github(е) сделать клон репозитория к себе на аккаунт Github
2) git clone https://github.com/lsnull/DataTypes.git (клонируем себе на(в) локальный проект)
3) npm i (устанавливаем зависимости в папку которую клонировали DataTypes на локальном проекте)
4) npm t (для теста файлов в DataTypes)
5) git status (что бы увидеть какие файлы в папке DataTypes мы изменили)
6) git add -A ( это мы добавляем те изменения в commit, которые были сделаны)
7) git commit (Добавляем комментарий)
7.1 откроется Vim. Команды: Esc - перед началом ввода комментария, подтвердить команду Enter, затем : или одновременно нажмите Shift и ; или Shift и : затем ввести в нижней консоли :wq это записать текущий буфер в соответствующий ему файл (даже если изменений не было) и закрыть окно.
8) git push (сохраняем весь проект - папку проекта DataTypes на Github обратно)
Авторское право:
Контент:
Содержание:
Andrew