Сколько лет учиться на программиста?
Только вот в контексте темы речь шла не о том, как научится делать программы,
Ну вообще меня бесит как программисты программируют. Вот конкретный пример - допустим я был шокирован посмотрев код, на ссылку которого дал вчера AlexNek - https://demo.clipbucket.com/enterprise/. Значит что мне не понравилось, разьясню по пунктам:
1)Мне не нравится что страница собирается на сервере и на PHP, для чего сделали JavaScript? Вот правильное решение - программу можно было разделить на мелкие куски, а шаблонизатор сделать на JavaScript или спомощью tempate - https://developer.mozilla.org/ru/docs/Web/HTML/Element/tem... дальше страница собирается спомощью AJAX, а шаблонизатор так:
// Подменяет переменные на значения
function replace_template(text, items) { items.forEach(function(val, key, map) { text = text.replace(key, val);}); return text; }
2)Мне не нравится что там используют ООП, короче я бы сделал кучу мальнких программ PHP, которые запускаются спомощью AJAX, и выдают результат как текст, или как JSON, это из моей соц.сети, одна функция возвращает кол-во просмотренных видео, а другая увеличеваает, чтобы код было компактней я использую сокращенные названия, AJAX_VIDEO_CNT это константа имя файла, path это константа абсолютный путь до сайта:
// vgc - video get count
function vgc(v, id) { $$.ajax(path + AJAX_VIDEO_CNT, 'POST', 'c=1&v=' + v, function(r) { $(id).text(r); }); }
// vsc - video set count
function vsc(v) { var ok=0; $$.ajax(path + AJAX_VIDEO_CNT, 'POST', 'c=2&v=' + v, function(r) { if(r == 'ok') ok=1; }); return ok; }
3)Мне не нравится что код несжатый, я всегда сжимаю код CSS, JavaScript, HTML.
4)l10n/i18n бы сделал спомощью аттрибуты data - https://www.w3schools.com/tags/att_data-.asp, допустим в какой-нибудь кнопки сделал бы так в тэге input зафигачил бы перевод прям в аттрибуты data-ru="Отмена" data-en="Cancel", а дальше так - var el = document.body.getElementsByTagName("*"); если тэг input то - el.value = el.getAttribute('data-' + lang); для всех остальных - el.innerHTML = el.getAttribute('data-' + lang);
5)Не нужно использовать фреймворки типа jQuery. Допустим на сайте ютуб или фейсбук это не используется.
P.S.:Раньше использовал такой i18n, eval это плохо:
function __(key) { var obj_lang = JSON.parse(i18n); return eval('obj_lang.' + key + ';'); }