Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
в яваскрипте, где в основном мы обеспечивам рендеринг html, работу интерфейса и проброску событий туда-сюда
Интересно, кстати, утверждение про тесты с учётом того, что в проекте на гитхабе они напрочь отсутствуют.
Бросайте уже пытаться сделать из яваскрипта яву или сишарп
в данный момент я работаю над приложениями для Samsung SmartTVЯ работал на IPTV 5 лет назад. Телевизионная приставка — это микрокомп (типа Raspberry PI только хуже — с 64 или 128 М памяти) на ARM с обрезанным Firefox с яваскриптуемым мультимедиа-компонентом (типа плугина), HTML- и JS-ресурсы либо зашиты локально либо грузятся с сервера. Не думаю, что SmartTV сильно отличается, разве что андроид вместо линукса. Так что на каком языке писать — выбора практически нет. И JS-фреймворки тоже не впихнуть — из-за ограничений по доступной памяти. Приходится извращаться и изобретать велосипеды.
Если ваши задачи на Javascript не выходили за эти рамки, мне нечего вам возразить. 90% людей пришедших в Javascript — это бывшие Front-end Guy, действительно, для них эта статья будет бесполезна. Но люди которые занимаются профессионально программированием на JS, часто сталкиваются со сложными задачами, когда нужно написать большое приложение не имея возможности построить нормальную абстракцию inbox инструментами.
Сейчас для меня web-браузер – это не основная, а одна из платформ для JS. А созданием GUI для обычных сайтов я вообще никогда не занимался.
Тем что у вас код, например console.log записан в текстовой переменной он не перестает быть кодом.
Какое-то программирование на конфиг-файлах получается.
Извините, я говорил об Open/closed principle. А Вы о чем?
А TDD это вообще программирование тестами. Но многим нравится.
Я понимаю, что это очень узкое направление в JS, но оно имеет право жить. Может кому-то будет интересно, а может даже и полезно.
Не пойму как связан код в string переменных
var SomeGlobalClass = function(){
this.say = function(){
console.log('I\'m here');
};
};
var str = 'SomeGlobalClass';
new window[str]().say(); // I'm here
у вас все равно логика реализована в конфиге.
var Menu = function(){
var ajax, domBouilder;
var constructor = function(){
ajax = new AJAXclass();
domBouilder = new SomeDOMboilder();
};
...
};
new Menu();
Не путайте методологию разработки с формированием архитектуры. Эта аналогия уровня «многим нравится программировать на клавиатуре mitsumi» — связи с DI столько-же.
Так напишите что сподвигло вас на это. DI ради DI никому не нужно.
JS не предоставляет инструментов для полноценного следования этому паттерну (элементарное отсутствие тех же рефлекшенов)
for(var i in {f:1, g:'r', m:0, h:null, l:undefined})
{
alert(i);
}
var Class = function(){
var privateMethod1 = function(a, b){
return a + b;
};
var privateMethod2 = function(c, d){
return c + d;
};
this.publicMethod1 = function(e, f){
return e + f;
};
}
Java-программисты как раз наоборот стараются уйти от xml-конфигурирования проекта
* IDE плохо поддерживает такие нотации;
* при рефакторингах приходиться менять в 2х местах (код + конфигурация);
Очень выручили бы аннотация, но в js их нет :(
Auto dependency injection в Javascript