Skip to content

Instantly share code, notes, and snippets.

View zhdanovme's full-sized avatar

Zhdanov Dmitrii zhdanovme

View GitHub Profile

Новые es6 классы, имеют геттеры и нормально наследуемые cтатичные свойства, но у них есть один существенный недостаток структуры декларации класса:
Между конструктором и методами в публичной областью нету общего скуопа, а так же аргументы конструктора недоступны из публичных методов.

Следовательно, нам приходится выносить локальные переменные в публичную область, чтобы иметь к ним доступ из публичным методов:

//было:
function Foo (element) { 
  var foo = 123;
  
 return {
$ webpack [18:19:15]
^[Hash: b050462bc9060789680c
Version: webpack 1.13.0
Time: 1897502ms
Asset Size Chunks Chunk Names
44.main.js 3.27 kB 44 [emitted]
main.js 702
Утилиты по поддержанию структуры
@zhdanovme
zhdanovme / gist:de9cef40b7a2691d09adcf2711986f70
Last active April 22, 2016 14:26
Тестирование шумом
шум всегда в строгой последовательности (?)
логирование действия и bisect поиск проблемного места

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

Идея в отделении логики реиспользуемого компонента от интеграционной логики.

Модуль с логикой должен возвращать конструктор, и ничего не должен знать про css/верстку. Модуль с интеграцией должен служить адаптером, между нашей версткой/css классами.

Конструктор логики принимает словарь с параметрами и словарь с элементами.

@zhdanovme
zhdanovme / recast-xhh.js
Last active March 15, 2016 09:17
recast-xhh.js
#!/usr/bin/env node
// Запускать с уровня где лежит папка hh.sites.main
// Usage: ./recast-xhh.js HH/Foo
'use strict';
var recast = require('recast');
var glob = require('glob');
var fs = require('fs');
define([
    'bloko/blocks/popup/popup'
], function(Popup) {
    'use strict';

    return function(params) {
        params.buttons.forEach(function(value) {
            $(params.content).on('click', '.HH-ConfirmDialog-' + value + 'Button', function() {
return Components.build(function() {
    this.defaults = { ...params... };
    this.init = function() {
        ...code...
    };
});
Конкат хэда - отдельно - для кеша.
Конкат остальных компонентов - по лимиту размера.
Конкат остальных компонентов - по списку.
количество реквестов/на размер/на объем покрытия
Копируем блоко в xhh.
Делаем тулзу которая деплоит из папки xhh/bloko в репу bloko,
которая запускается автоматом при релизе новой версии xhh,
и проставляется свежий тег на зарелизившийся коммит.
Мобилки так же копируют к себе блоко в репу.
Мобилки вносят у себя в репе в папке блоко изменения которые им нужны.
И когда происходит релиз мобилки с новым bloko,
утилита пушит в мастер блоко содержимое mhh#release-candidate/bloko.