Как стать автором
Обновить
13
0
Алексей @boodda

Пользователь

Отправить сообщение
но ваша система и есть практическая работа студента, в которой никто кроме вас не разберется быстро, а когда разберется найдёт кучу багов, которые надо править, и вот он денежно-временной континнум клиента, которго поставят перед выбором, платить дальше и смириться с текущей системой или опять заплатить за новое решение.
но если сделать хорошо будет не 3 файла. а больше и что вы там настраивать хотите не понятно.
php, sqllite, phar, копируй то, создай сё. чем лучше то, такие же непонятные слова. И не надо объяснять ничего клиенту, если он не понимает вас, говорите на его языке, «мы все сделаем за X дней, за Y денег, если не срочно сделаем скидку, если срочно накинете 50%, подвинем других ради вас.»

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

Но что действительно от вас ожидает любой человек, который даёт вам деньги за что угодно? Ответственность.
Вот если вы продаёте это говно клиентам, я думаю если им захочется что то поменять и они найдут хорошего профессионала и посмотрит на то что было ДО… он скажет, прискорбно вам сообщать, но в прошлый раз под видом конфеты вам продали кусок говна, и теперь надо бы еще раз вложится и сделать хорошо. Что подумает о вас ваш клиент.… ЧТо вы очень плохая компания, а вам ответить будет нечего, вы просто скажете, да чел мы тебя поимели. извини бро, но это биз.

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

В первом случае это кроткая проститутка, во втором bdsm госпожа
Разворачивание сайт при этом свелось к копированию одного файла в директорию проекта.


Это вы сейчас серьёзно? Мой бог но svn co и git clone знают все.

Sqllite это для 2 мб и 100 страниц текста, дальше будут тупняки.

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

Горите в аду
развернуть у клиента..., бог мой, git clone или svn co уже давно решают. бд, sqllite -это выбор для пары мегабайт или 100 страниц, как я вижу вас? такие как вы делаете код только для того чтобы доить клиентов на поддержке вашего говна, для it сферы — вы инфекция, вы только тратите свое время и деньги клиентов
Мне кажется, вы как то, не так как я, представляете себе рендеринг в ББ. Типичный реднеринг сводится к следующему
```
var HugeForm = Backbone.View.extend({
events: {
'change .js-block1 input[name=«user_name»]': changeModel1UserName,
'change .js-block2 input[name=«zip»]': changeModel2Zip
},
initialize: function(){
this.main_model = new MainModel({});

this.main_tpl = _.template(main_tpl);

this.listenTo(this.main_model, 'change', this.renderMain);


this.model1 = new Model1({});
this.model2 = new Model2({});
this.model3 = new Model3({});

this.form_part1 = _.template(tpl1);
this.form_part2 = _.template(tpl2);
this.form_part3 = _.template(tpl3);

this.listenTo(this.model1, 'change', this.renderFormPart1);
this.listenTo(this.model2, 'change', this.renderFormPart2);
this.listenTo(this.model3, 'change', this.renderFormPart3);

},
changeModel1UserName: function(event){
this.model.set('user_name', $(event.target).val());
},
changeModel2Zip: function(event){
this.model.set('zip', $(event.target).val());
},
renderMain: function(){
return this.$el.html(this.main_tpl(this.main_model.toJSON()));
},
renderFormPart1: function(){
return this.$el.find('.js-block1').html(this.form_part1(this.model1.toJSON()));
},
renderFormPart2: function(){
return this.$el.find('.js-block2').html(this.form_part2(this.model2.toJSON()));
},
renderFormPart3: function(){
return this.$el.find('.js-block3').html(this.form_part3(this.model3.toJSON()));
},
render: function(){
this.renderMain();

this.renderFormPart1();
this.renderFormPart2();
this.renderFormPart3();

return this;
}
});
```
я вот прям сейчас пишу клиентское приложение на ББ. и думаю у меня все получится не плохо
В данном примере все решается декомпозицией, вашу гигантскую форму надо делить на логические куски, где каждый кусок будет обладать своей моделью и своим шаблоном(а может и подчинённым вью), и все это сводится в четкую, ровную и понятную иерархическую структуру.

Главное не сорваться на манипуляции DOM. Вью рендерит шаблон исходя из начального состояния модели связанной с этим вью и подписывается на события которые происходят в отображении(click, change, submit), события всплывают вверх и вью изменяет нужную модель, а так же вью следит за изменением модели и перерендеривает нужный шаблон.

Тут два процесса:
первый: template event->view->model change
второй: model change->view->template render

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

Проблемы появляются именно тогда, когда кто то начинает думаать в стиле, а че я заново буду рендерить этот кусок, тут всего то надо класс затоглить.
и все… реализация этой мысли будет фатальной ошибкой. Если приложение где то вначале пути или активно развивается. так как эти допущения будут разноситься как инфекция.
Как то странно вы все сделали в первом случае вы натыкали кучу кода во вью, а во втором унесли все в шаблон, и заново его перерендериваете целиком, ну так вот вам вопрос: а почему тот же шаблон нельзя было использовать с ББ и рендерить шаблон заново при изменении данных в модели(или сразу нескольких моделей от которых зависит форма?
В чем конкретно вся соль вашего решения проблемы?
Не понятно, тюнинговали ли вы ОС для того, что бы работать с таким количеством соединений (касаемо и сокетов и TCP).
За 3 секунды Redis не успел их у себя до конца обработать
а 3 секунды это проблема редиса или то что php не успел?
Причем здесь дифы и снепшоты? Логи не на уровне БД, а на уровне приложения. Т.е. грубо говоря, заказчик хочет зайти на сайт/в программу и увидеть, кто какие вносил изменения (например, кто поменял номер в накладной).

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

Если говорить про веб разработку, то вьюхи, как и хранимые процедуры и всяческие триггеры, плохо реплицируются и не позволяют легко восстановить информацию и работоспособность БД после сбоев. Тяжело поддерживаются. так как логика размазывается по разным местам, за которые отвечают разные программисты, никто не видит картины целиком.

Поэтому в вебе любую БД лучше использовать только как хранилище данных, без каких либо внутренних обработок.
Более того в этой же таблице может быть еще колонка ссылка на третью таблицу, к примеру с языком книги, language_id, а так же например количество на складе count, и не нужен тут ID, он не даёт тут ровным счетом ничего
$src = qn($sql = "SELECT * FROM `{$tab}`". ($where ? " WHERE ". implode(" AND ", $where) : ""). (($order = get($conf, 'settings', substr($src, strlen($conf['db']['prefix'])). "=>order") ?: "") ? " ORDER BY ". mpquot($order) : ""). " LIMIT ". (int)(array_key_exists('p', $_GET) ? $_GET['p']*$key : 0). ",". (int)$key,$IdName);

Здесь вы просто смешали все что можно было смешать:

  • куча(просто гора) переменных с неясным назначением
  • 4 (4 КАРЛ!) тернарных оператора в одной строке, вы хотели что бы никто не понял? У вас получилось
  • использование глобальных переменных $conf['db']..
  • использование суперглобальных переменных? С чего вы вообще взяли что массив $_GET существует, и почему не POST или еще что то ?
  • переменная tab подставляется в функции без фильтрации -> SQL инъекция

Этот код ужасен:

  • так как его в принципе невозможно задокументировать, протестировать, понять, осознать и использовать
  • он не безопасен, это очевидно
  • лапшекод
  • код не инкапсулирован
  • надеется на то что существуют глобальные и суперглобальные массивы
  • не предполагает как я понял агрегированных значений из БД, в которых может быть многоколоночная уникальность
  • не использует возможности самой БД для оптимизации выборок
  • ваши функции отвечают за слишком многое
  • ваши функции отвечают за слишком многое
  • ваши функции отвечают за слишком многое

Я так полагаю, что на этот код потрачены месяцы жизни и поэтому вы считаете это отличной работой, но нет. Это возможно работает, но нет. Откройте уже наконец для себя мир ORM(Eloquent, Doctrine). Но начинать стоит с теории реляционных БД.
У вас очевидно невысокий уровень понимания устройства и работы БД. Надо его подтянуть.

Почитать про паттерны проектирования. Понять их суть, предназначение.
строки 249-273. Этого бы не случилось никогда.

И вот вам вопрос на засыпку. Как вы думаете, существует ли человек, который хотя бы за 20 минут сможет ответить, что происходит в функции "bcont" строка 297. Ну не просто что, а как конкретно это происходит.
Тут как бы и зарыта проблема, что вот никак не получится в нормальном проекте без НЕ современных браузеров. Пишу полгода уже новую версию проекта(сервис), с нуля. И вот казалось бы сейчас развернусь, а тут говорят что у IE8 есть достаточная доля рынка и мы не можем его игнорировать. И все классные разработки идут лесом
Вот прям раба, да?
У ребенка должны быть авторитеты, но до 10-12 лет сделать кого то авторитетом для ребенка невозможно. Именно для этого нужна постоянная строгость, чтобы сохранять иерахию(это не рабство). Она нужна везде, иначе, будет одно быдло(неучи называйте как хотите) которые будут говорить, зачем мне это зачем то, вы из меня раба не стройте, а работа стоит, все стоит. Такие люди начинают прожигать жизнь, потреблять её, незадумываясь не о чем. Сейчас таких людей стало очень много. И ничего хорошего в этом нет.
А вы вот сейчас точно передергиваете.

Строгость, послушание и сосредоточенность на учебе, по жизни ни кому не помешали. А вот обратное приводит к вопросам в экзаменах типа «350 кг это вес или длина, в тесте у выпускников», так как на более сложные вопросы он ответить впринципе не может. Зато знает 178 категорий порно, как правильно зацепиться за вагон метро, как проходя мимо прохожего, проломить ему голову и крикнуть «Эй, чувак это пранк, это пранк!».

— Бангладеш — это где?
— Блок — мм, какой блок?
— Мцыри -ты че ругаешься при мне, я же деть.
— E=mc2 — Эта памойему Айзеншпис какойто псал...(именно с такой граммотностью) и т.д
Анекдот от электриков:
-Володя не заходи в ту аудиторию, там весь потолок HUE'ми увешан
В таком ключе, да вы абсолютно правы.В моём комментарии надо заменить слово профессионализм на мастерство. Но суть моего комментария это, вообщем то, не меняет.
ваши коллеги такие же профессионалы как вы, вне зависимости от объема личного опыта

Как то не вяжется одно с другим. Профессионализм и определяется количеством личного опыта. Чем он больше, тем человек профессиональнее. С какого момента человек становится профессионалом, это вопрос для дискуссии.

А вообще, Вы как то очень толерантны, а толерантность до хорошего не доводит.
Вот сидит человек, делает какую одну и ту же ошибку раз за разом. Ему раз сказали, два, потом возникает нормальный вопрос, " Эй чувак, ты в танке или просто игнорируешь всех?". И что, надо боятся что он обидится? Думаю не надо.

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность