Сообщения

Полезные мини инструменты для программирования

Онлайн инструменты https://tohtml.com/java/ - подсветка синтаксиса, например для выкладывания на блог http://regexr.com/ - регэкспы + примеры https://regex101.com/ - регэкспы http://base64.ru/ - Base64 конвертор https://www.tutorialspoint.com/execute_bash_online.php - bash console https://jsonlint.com/ - json валидация https://jsfiddle.net/ - js  https://kripken.github.io/sql.js/GUI/ - sql http://rextester.com/l/java_online_compiler - java, но там есть и другие языки: python, js, sql и т.д. https://www.base64-image.de/ - конвертор картинок в Base64 https://jwt.io / - конвертор токенов для oauth2 Дополнительно http://ab57.ru/cmdlist/subst.html - создание фейкового диска в windows, например "SUBST D: C:\_D" https://medium.com/@rafaelideleon/tutorial-organize-you-commits-through-git-rebasing-and-jetbrains-ides-e88e1f806b57 - squash в git https://github.com/zeeshanu/learn-regex/blob/master/README.md#bonus - заготовки регэкспов C:\Users\%US...

Компонента Angular \ Angular2

Введение Данная статься скорее для себя, здесь не будет ничего нового чего бы вы не смогли найти в интернете. Я заметил что когда пишу новую компоненту мне легче начинать с какого-то шаблона. В качестве шаблона я выбрал компоненту - текстовое поле с иконкой поиска и вызовом callback, которую писал сам. Код AngularJs //fastSearch.tmpl.html < div class = " fast-search " >     < input type = " text "             class = " fast-search__input "            placeholder = " {{fastSearchCtrl.hint}} "            ng - model = " fastSearchCtrl.value "            ng - keydown = " fastSearchCtrl.cancelSearch() "            ng - keyup = " fastSearchCtrl.search() "     >     < / input >     < div class = " fast-search__icon " > < / div > < / div > //fastS...

Duck Hierarchy

Изображение
В этой статье больше шутки нежели полезной информацией. Под влиянием книги  Head First Design Patterns  я когда-то давно нарисовал такую картинку. Слева мы видим типичное наследование и проблему двойного наследования когда хотим реализовать в одном классе два поведения. А справа наследование от абстрактного класса и реализация интерфейсов. В этом случае нам конечно придется писать под для каждого интерфейса, зато это провоцирует нас писать классы с одной обязанностью как и ожидает от нас один из пунктов принципа SOLID. А под конец картинка про фабрику

Мой самый сложный SQL запрос

Изображение
Я работу по большей части во фронтэнде на как-то раза два у меня была задача написать сложный SQL-запрос. В принципе получилось довольно быстро при использовании интернет. Может кому и пригодиться. Задача 1 - посчитать количество ордеров определенного типа 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 DROP TABLE IF EXISTS Objects; DROP TABLE IF EXISTS ObjectTypes; DROP TABLE IF EXISTS Attrs; DROP TABLE IF EXISTS Params; CREATE TABLE Objects (id int , objectTypeId int , name varchar ( 30 )); INSERT INTO Objects (id, objectTypeId, name) VALUES ( 1 , 1 , 'Order-Tv#1' ); INSERT INTO Objects (id, objectTypeId, name) VALUES ( 2 , 1 , 'Order-Tv#2' ); INSERT INTO Objects (id, objectTypeId, name) VALUES ( 3 , 1 , 'Order-Tv#3' ); INSERT INTO Objects (id, objectTypeId, name) VALUES ( 4 ...