Pull to refresh
31
0
Бучнев Павел @butschster

Senior PHP Developer

Send message

Ну я не рассматриваю этот канал с точки зрения найма этого человека, он полезен с точки зрения понимания последствий неверно принятых решений.


Удар в сторону двери это еще половина беды, но кто после этого проверяет наличие подушек безопасности или изменение геометрии машины.


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

Ну собственно вот ответ на ваш вопрос https://www.youtube.com/watch?v=r0AwMRPrVJs А вообще советую посмотреть этот канал перед тем, как решиться на покупку б\у авто.



Обычно крон-задачи простые, например очистка сессий и нужно выполнить один только запрос

Ну понятно что у Вас то они обычно простые, сложные не впишутся концепцию проекта SKY, т.к. они требуют много строк кода, а здесь то «clear cloud»

А вот рассмотрим реальные cron задачи:
— Синхронизация списка пользователей сайта и AD корпоративной сети
— Синхронизация календарей сотрудников из MS Exchange с корпоративным порталом.
— Ежедневная рассылка уведомлений по электронной почте
— Обновление поискового индекса на сайте
— Генерация отчетов

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

Кстати, вы же знаете, что крон задачи можно добавлять напрямую в crontab, это сэкономит лишние!!! килобайты!!! Вдумайтесь, зачем ваш файл cron.php, если можно, например, crontab -e и там добавить нужные задачи.
* * * * * /var/www/sky-project/cron.php session:clear
0 0 0 0 * /var/www/sky-project/cron.php delete:project

Функция at костыль!

дополнительно вам нужно открыть страницу (что вы дали выше) чтобы изучить документацию

Я так понимаю, вы стали программировать не заглядывая в документацию, да и видимо так со всем остальным. Дома у вас инструментов также никаких нет, только потому, что есть камень, самый простой инструмент и с его помощью можно сделать все, забить гвоздь, развести огонь ну и инструкция не нужна! Зачем усложнять жизнь?

Так вот правда в том, что инструменты, также как и ваш, рождаются тогда, когда его автор считает, что он необходим. И чем больше людей используют инструмент, чем он полезнее. Давайте обратимся к статистике: https://packagist.org/explore/popular и посмотрим какие сейчас инструменты нужны всем.

Неужели я что-то неправильно понимаю?

Вам бы идти в демагоги, а не в программисты.

Ну и напоследок: я бы советовал взять, к примеру, SugarCRM. Почему его? А потому что он монструозный и код открыт и там вы в полной мере окунетесь в мир глобальных переменных, php4, легаси кода и т.д. Изучая его вы сможете в полной мере ощутить себя в шкуре тех разработчиков, которым вы пытаете впарить свою систему. После того, как вы во все это окунетесь, задумайтесь над тем, насколько можно сократить код по идеологии SKY Project

P.s. Вы же, надеюсь, понимаете, что как только ваш КПИ (код повторного использ.) по возможностям отчасти сравняется с Laravel, то ему потребуется документация? Или вы думаете, что весь код из Laravel можно сократить до 3-х функций? И отсюда у вас возникает вопрос: раз даже я, разработчик, который решил изменить мир к лучшему не смог изучить код Laravel, то код от лукавого и не нужен, не то что мой, понятный мне без документации, а значит всем остальным и в этом его преимущество.

P.p.s У меня в проекте 276 файлов с классами покрытыми phpDoc + 60 view файлов (и это еще не большой проект, без учета сторонних библиотек), как думаете, насколько это можно сократить?
Странная логика, наваяем QB, чтобы код был красив…

Милейший, вы в моем примере увидели красоту кода? Ну да, код красив, но им также удобно пользоваться! Он избавляет от дублирования кода, он экономит время разработчика.

Для того, чтобы работать, например с PostgreSQL, нужно просто взять тот-же файл «main/sky.php», который является портом для этой БД.

Вы видимо шутите? Т.е. если у вас будет поддержка 10 БД, то ваш проект будет содержать 10 клонов, разница в которых только в SQL запросах? Кто будет за этим следить?

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

Простейший пример: Один заказчик хочет, чтобы в БД пароли хранились с определенным алгоритмом шифрования, который ваша CMS не поддерживает, второй хочет видеть авторизацию по email, третий хочет полноценной api и SPA с использованием JWT, я так понимаю что в вашей SKY ни один из этих кейсов не реализуем?

Я не верю в происходящее. Это тест Тьюринга? Если да, то этот бот смог убедить кучу народа в том, что он настоящий человек.

Здесь либо программиста переклинило от того, что у него была куча кода со времен php4 и он не смог пережить его тотальное устаревание. Также я подозреваю, что человек за всю жизнь сделал всего один проект и его название SKY. Если вспомнить свой путь создания нескольких проектов для широкой публики, я могу с уверенностю сказать, что код проекта SKY будет занимать меньше места, чем список хотелок, которых не будет хватать окружающим.

Скажите, вы можете дать вразумительное объяснение, почему чтобы сделать простой запрос к БД, код в вашем framework выглядит так:

$db->$mysql->select( … )

Нет, не можете? а зачем тогда так пишите? Многие, могут поспорить сейчас и попытаться дать объяснение, но после очередных вопросов, они не смогут дать вразумительный ответ или дадут, но после следующих – не смогут.


Я так понимаю, что разработчик не знает про то, что не все используют mysql, sqlite, pgsql, и Query Builder позволяет на выходе получить запрос под конкретную БД с учетом ее особенностей.

Если происходит сабмит формы с 100 полями, то QB позаботится об экранировании данных.

Ах этот лаконичный SQL запрос… когда в нем начинают появляться условия :) Или мы не хотим соблюдать последовательность при проверке условий…

Приведу пример из SugarCRM, когда они пошли по похожему пути https://github.com/butschster/sugarcrm_dev/blob/master/data/SugarBean.php#L2883 Казалось бы, что может быть проще, чем выполнить SQL запрос и зачем только нужен этот Query Builder?!

// Пример высосан из пальца и код упрощен по максимуму
$query = DB::table('users');

if ($groupByTotalLogins) {
     // Здесь мы можем не соблюсти последовательность, но на выходе получим валидный SQL
     $query->join('logins_history')->....;
     $query->groupBy(...);
     $query->select(...)
}

if ($joinProfile) $query->join(...);

if (!$withDeleted) $query->where('deleted', 0);
if ($onlyId) $query->select('id');

if (//condition) {
    $query->orWhere('field', '>', 10);
}

// Остальные 100 условий


Ну и чистый лаконичный SQL
$table = 'users';
$select = $onlyId ? 'id' : '*';
$where = '';
$groupBy = '';
$orderBy = '';

if ($joinProfile) {
    $table .= ' join profile ...';
}

if ($groupByTotalLogins) {
     $table .= ' join logins_history ...';
     $select .= ' count(logins_history.*) as total_logins';
     $groupBy .= '....'
}

if (!$withDeleted) {
    $where .= 'deleted = 0';
}

if (//condition) {
    $where .= !empty($where) ? ' OR' : ' ';

    $where .= ' filed > 10 '
}

if(empty($where)) {
    $where .= !empty($where) ? ' AND' : ' ';
    $where = '1=1';
}
...
// Вспомним что у where еще могут быть группировки условий...
$query = "select {$select} from {$table} where {$where}";

if(!empty($groupBy)) {
    $query .= "group by {$groupBy}";
}

if(!empty($orderBy )) {
    $query .= "order by {$orderBy}";
}



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

Хотелось бы пару строк от автора о том, как расширять ядро не затрагивая при этом сам код?

Подведем итог: с 2012 года автор смог осилить написание около 100 кб устаревшего к настоящему времени кода. Пакет «FORUM.SKY» появится тогда, когда автор сможет уместить идеальный всеохватывающий код в 800 строк. Остальные пакеты появятся тогда же.
Добавлю еще немножко: Ребята, вы конечно молодцы, что решили создавать opensource проект, но ваш проект плох во всем. Он плох с точки зрения безопасности, он плох с точки зрения кода, ну можно было бы перед тем, как публиковать проект, хотя бы форматирование кода сделать, весь js запаковать в один файл и убрать исходники сторонних библиотек. Я так и не понял что дает ваша CMS кгмммм… редактированием одной страницы через CKEDITOR?

У вас инструкция по установке занимает гораздо больше места, чем описание возможностей.
Просто оставлю это здесь: https://github.com/nestpanel/nest/blob/master/system/save.php. Редактируй кто хочет?
Я на работе веду разработку нескольких проектов, один из них написан на Laravel и за основу использует https://github.com/LaravelRUS/SleepingOwlAdmin, когда я решил использовать эту админку, то она уже не развивалась достаточно долгое время, пришлось возродить проект. Помимо этой админки у меня есть еще один проект, которому я также стараюсь уделять время https://github.com/KodiCMS/kodicms-laravel, который гораздо крупнее. Поверь мне, я очень рад, что я могу ими заниматься (и да, я нахожу на них время даже в выходные будучи женатым), ведь это развитие и мне часто предлагают различные вакансии, а благодаря этим проектам я становлюсь ценным кадром.
Я уже довольно долгое время занимаюсь разработкой OpenSource CMS KodiCMS и параллельно стараюсь развивать проект SleepingOwlAdmin, главным элементом которых является админка и все что крутится вокруг нее. И могу смело сказать, что я бы не купил этот шаблон по той причине, что кроме цветовой гаммы он ничем не отличается от других шаблонов, в каких то моментах даже уступает.

Мне кажется, нет смысла занимать нишу разработки админки, если шаблон не может предложить ничего, кроме цветовой гаммы и парочки дополнительно сверстанных элементов. Основным запросом пользователей являются:
— работа с таблицами (формы поиска в таблицах) и вывод данных
— работа с формами

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

По мне, идеальная админка, за которую я готов заплатить, должна иметь мощный набор инструментов именно с формами. Т.е. должны быть проработаны:
  • различные варианты полей (выбор даты в различных форматах, выпадающие списки (AJAX, зависмые и т.д., построение дерева), и т.д. Вариантов полей не так много)
  • если говорить о выводе списка записей, то различные варианты фильтров (ползунки, чекбоксы, формы поиска)
  • дэшборд не просто в виде сверстанных эелементов, а связку например http://gridster.net/ + интерфейс для добавления виджетов на рабочий стол
  • Отображение списка картинок с возможностью редактирования заголовка картинки, удаление из списка и загрузка новых.


Также 99% пользователей жаждут получить wysiwyg редактор текста в возможностью загрузки и выбора файлов на сервере. И сделать это как готовый работающий инструмент. Если будет похоже на то, как это сделано в wordpress, то аудитория не заставит себя долго ждать. Причем задача не такая сложная.

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

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

Удачи в разработке своего продукта, готов ответить на вопросы.
Моя ошибка, я не уточнил, что на данный момент alpha версия, и в данный момент активно ведется перенос модулей со старой версии. По ссылке можно посмотреть результат переноса на данный момент времени, но это не окончательный вариант. Об этом также говорит лейбл alpha в логотипе админ панели.

P.s. я с большим уважением отношусь к баг репортам и по возможности стараюсь проблемы исправлять в кратчайшие сроки.
Ну собственно я не против твоего баловства, но это можно показать на внутренней странице и показать в чем проблема. На данный момент ты не единственный, кто может тестировать или хочет посмотреть систему, а если ее кто-то ломает, то для других появляется проблема доступа и всякие неудобства. Сломать всегда проще, чем сделать, но при этом всегда необходимо помнить о других. Мне вообще интересна проблема, которую ты показал, т.к. это явная недоработка, но хотелось бы видеть обратную связь немного по другому.
Спасибо за счетчик, я совсем про него забыл. Добавил код также на внутренние страницы админ панели
Спасибо. Модуль API также в будущем будет использовать API ключи которые будут генерироваться в админ панели и будут требоваться в том случае если пользователь не авторизован или для доступа сторонним ресурсам.
Данные настройки планируется защищать через ACL модуль и давать права на их изменение только администраторам или еще каким либо ролям, ну а так да, я согласен, возможно стоит убрать. Именно этим и хороша обратная связь. Спасибо.
Спасибо, исправил. К сожалению такое имеет место быть, т.к. еще alpha версия, но система периодически переустанавливается по крону.
Это было более 2-х лет назад, комментарий выше свидетельствует о данной возможности. Я вообще не понимаю смысла спора. По глупости и невнимательности руководства была куча историй в которые сложно поверить, например про терминал, который каким то образом переместили в другой район, а адрес при этом в настройках не сменили, а потом долго не могли найти пока клиент, который оплатил услуги и ему не пришли деньги, не позвонил и у него не узнали адрес нахождения терминала.
Сколько лет вы работаете в терминальном бизнесе? Если сейчас нельзя — это не говорит о том, что раньше такого не было. За время моей работы милиция приезжала за 3-мя сотрудниками компании, которые попались на воровстве, это говорит о том, что люди имеют свойство находить лазейки. Данная статья тому подтверждение.

Я могу долго рассказывать истории как занимались разработкой своего Web интерфейса для терминала и принимали платежи через CyberPlat, как часто все висло, на сколько граблей за все время разработки своей мини ПС наступили. Про то, как разрабатывали свой Frontend для сбора аналитики работы сети из 1500 терминалов через API Qiwi, чтобы свести такие историй, о которых я рассказывал к минимуму. Я даже боюсь вам говорить сколько инкассаций пропадало, потому что не сможете в это поверить. Как воровали терминалы набитые деньгами, выдергивая их машиной или как грабитель через монитор вытащил купюроприемник.
Не совсем понимаю, почему вы мне вопрос задаете по причинам того, почему поступил так инженер по терминалам.Это история из жизни. Если человек умел пользоваться купюрником и у него был установочный софт и доступ к ключам от разных терминалов, то наверно он поступил самым простым способом. И напомните к к какому именно железу привязывается терминальный софт Qiwi?
Расскажите тогда как происходит оплата через Qiwi терминал не используя купюроприемник и без использования денег в qiwi кошельке.
Мой совет не связываться, особенно если хотите крупную сеть терминалов, т.к. есть несколько проблем:
1. Договор с банком на инкассацию денег из терминала и соответсвенно нужны инкассационные чеки с терминалов для банка с суммой равной сумме инкассаций, а там как известно бывают сбои со стороны киви и платежи пропадают, соответсвенно чеки нужно готовить иногда вручную.
2. Наличие сервисной бригады, которая будет их ремонтировать и устанавливать
3. Желательно знать надежные места, где можно разместить терминалы, т.к. есть места где их могут повредить (конкуренты, вандалы) или вообще своровать. Самые прибильные места — конкуренты и аренда.
4. Почти нулевой заработок на комиссии, соответственно рано или поздно вы втянетесь в черные схемы и будет сложно из них выйти.
5. Нужен постоянный человек на телефоне, который будет отвечать на телефонные звонки.
6. Нужна аналитика по всем терминалам, чтобы понимать движение средств в них, чтобы всегда понимать что происходит.

По прошлому опыту добавлю, что терминалы воруют, инкассаторы или техники также могут воровать деньги с них, много или по чуть чуть (был случай когда один ремонтник украл себе купюроприемник, подключил к домашнему компьютеру и оплачивал через него все до тех пор пока не спалился на номере своего телефона).
При большом обороте будут поступать предложения различные от различных людей, которые будет сложно игнорировать.

В общем вот реальная история того, что было с одим из владельцев больше 1000 терминалов.

Information

Rating
Does not participate
Location
Батуми, Аджария, Грузия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
From 500,000 ₽
PHP
Docker
PostgreSQL
Git
English
Software development