Команда разработчиков

iworkshop
На сайте с 22.12.2008
Offline
195
#81

ArbNet, я начинающий программист. PHP знаю на уровне джуна(слабого\сильного - не важно), фреймворки пока не знаю вообще(в ближайших планах на изучение). html/js - на начальном уровне. По идее я, что называется, "ваш клиент".

Вы можете чётко, ясно и понятно объяснить почему мне стоит учить не yii, symphony, laravel (ну или lumen\silex и т.д.), а уделить внимание изучению вашего проекта?

1) Чем конкретно он лучше? И почему, с конкретными примерами, выкладками.

2) Для каких задач он подойдёт лучше указанных выше? И почему, с конкретными примерами, выкладками.

3) Что с расширяемостью? С внедрением дополнительного функционала, изменением? С конкретными примерами.

4) Где можно его пощупать? Как его вообще установить? Гитхаб? Пакет композера? Просто архивчик с файлами?

Я зашёл на ваш сайт, ничего внятного, пара рекламных текстов и статеек о вёрстке. Ну и пёрлы вида(стилистика сохранена):

В SNC всё построено на узлах и компонентах даже движёк(система которая управляет всеми процессами) сайта является узлом core.

Что это за абстрактный узел? Какие функции он выполняет? Он работает с данными как модель? Описывает какую то сущность, как класс ORM? В нём какая то логика реакции на события как в контроллере? Или он вообще за вывод html отвечает как View? Или всё вместе в куче? Нифига не понятно.

Мне нравится узнавать что-то новое. Если вы сможете мне доказать преимущество вашего проекта над уже существующими я с удовольствием его выучу. Не вместо конечно же а вместе с другими. Как минимум для расширения кругозора.

Если не сможете - значит вы сами не можете объяснить чем ваш проект лучше существующих и нафига он вообще кому то сдался. И если вы не сможете его даже "впарить" кому то для использования надеяться что найдутся люди которые вместе(или вместо) с вами займутся его разработкой - мягко говоря глупо.

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

XMLRiver - прямая выдача Google и Яндекс через API
S
На сайте с 30.09.2016
Offline
469
#82
ArbNet:
miketomlin, элементы парсинга в интерпретаторе есть конечно, но это не парсер согласитесь.

Ты, наверное, удивишься, но первое, что делает интепретатор – это парсит код скрипта.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M
На сайте с 04.12.2013
Offline
223
#83
ArbNet:
элементы парсинга в интерпретаторе есть конечно, но это не парсер согласитесь.

У вас там фраза некорректная была, иначе бы сразу три человека, включая меня, не обратили бы на это внимание.

ArbNet:
Компилятор - это генератор текста в исполняемые команды на низшем уровневом языке или на машинном коде напрямую. У меня скорее интерпретирование происходит.

Вот именно. В то время как у других компиляция. Сейчас под компиляцией понимается еще и «транспиляция»: шаблоны на языке шаблонизатора переводятся в нативные шаблоны языка вроде PHP с их кэшировнием (необязательный этап, шаблоны можно писать прямо на PHP плюс HTML или еще что-то).

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
Aisamiery
На сайте с 12.04.2015
Offline
293
#84
iworkshop:
ArbNet, я начинающий программист. PHP знаю на уровне джуна(слабого\сильного - не важно),

К сожалению вы уже более компетентные, потому что ТС сложно даже под джуна подтянуть.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
edogs software
На сайте с 15.12.2005
Offline
775
#85
ArbNet:
Многие хотят работать в команде и я не исключение. Да я разносторонний, могу один практически сделать всё для сайта, но что-то нравится делать и получается лучше, а что-то нет. Поэтому желательно иметь компаньонов. Некоторые мне предлагали сотрудничество, некоторым я, из-за разных подходов и целей сотрудничества не получается.

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

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

ЗЫ. создал новую тему так как в теме фреймворка добавить сообщение уже нельзя

Про фатальный недостаток уже говорилось?

Хотите найти команду/партнеров - акцентируйте внимание на коммерческой привлекательности своего проекта, а не технической.

Разработчикам по большому счету плевать интерпретатор у Вас там, компилятор или что-то еще.

Разработчикам интересно сколько человеко-часов уйдет на "тыдышь тыдышь и в продакшен"© для конкретных (разных) задач.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
ArbNet
На сайте с 27.10.2019
Offline
124
#86

iworkshop, Вот это уже деловой разговор. Первый человек который не понимая, не плюётся.., а задаёт конкретные вопросы по существу. Спасибо.

1) На данном этапе есть только ядро которое обрабатывает xml структуру и некоторые узлы с шаблонами и php классом для проверки работоспособности. То есть на лучше чем существующие фреймворки он пока не претендует, когда обрастёт разным функционалом тогда сайт будет конструироваться быстрее чем на существующих фреймворках.

Чем он будет лучше? Тем что легко настраивается, пишется с ноля без прикручивания других фреймворков и тд. Всё разложено по полочкам по узлам - это связка макета к которому если надо стили, php класс с методами обработки. Хотел сделать ОРМ, но отказался. Есть класс для работы с базой данных, при написании какого то узла с методами работы с базой этого вполне достаточно, плодить классы, наследовать и тд. Зачем? Те кто умеют делать запросы к базе и без надстроек смогут работать с базой. Возможно немного доработаю сам класс работы с базой, есть мысли делать сущности просто в массивах.

Документация пока в черновом варианте, постараюсь там сделать конкретные примеры.

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

3) Расширяемость элементарная. Нужен какой-то функционал, добавляется новый узел(директория в узлы), делаются шаблоны стилизуются, пишется php класс с методами. Готово. В структуре указывается что надо выводить на странице.

4) Пощупать пока нельзя. Хотел недавно выложить(тему вот создал) если б была заинтересованность, кто-то хотел бы помочь и в своих проектах использовать, передумал. Тороплюсь.. мало ещё что сделано чтобы продемонстрировать работу. Надо ещё доделывать...

iworkshop:
Что это за абстрактный узел? Какие функции он выполняет? Он работает с данными как модель? Описывает какую то сущность

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

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

---------- Добавлено 14.03.2020 в 18:15 ----------

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

Обсуждение разработки на моём фреймворке https://discord.gg/23N4s9x2kp
iworkshop
На сайте с 22.12.2008
Offline
195
#87
Aisamiery:
К сожалению вы уже более компетентные, потому что ТС сложно даже под джуна подтянуть.

Может быть. Но в любом случае я пока на уровне, когда лучше быть скромнее. Да и это не топик с предложением услуг)

ArbNet:

1) На данном этапе есть только ядро которое обрабатывает xml структуру и некоторые узлы с шаблонами и php классом для проверки работоспособности. То есть на лучше чем существующие фреймворки он пока не претендует, когда обрастёт разным функционалом тогда сайт будет конструироваться быстрее чем на существующих фреймворках.

Окей, давайте попробуем разобраться.

1) Я так и не понял структуру вашего ядра. Я же не просто так конкретику просил.

Давайте зайдём с другой стороны. Что происходит в тот момент когда пользователь запрашивает index.php вашего фреймворка? Ну к примеру я сейчас пилю блог в учебных целях. Очередной велосипед, но мне полезно. Не вылизанный фронт у меня выглядит примерно так:


error_reporting(E_ALL);
ini_set('display_errors', 1);
require __DIR__ . '/core/autoload.php';

use \App\Classes\BaseException;
use \App\Classes\Router;
use \App\Classes\View;
use \App\Classes\Auth;

try {
Auth::start();
Auth::authentication();
Router::start();
} catch (BaseException $exc) {
$view = new View();
$view->errMessage = $exc->getMessage();
switch ($exc->getCode()){
case 1:
header('HTTP/1.1 403 Not Found');
header("Status: 403 Not Found");
break;
case 2:
header('HTTP/1.1 404 Not Found');
header("Status: 404 Not Found");
break;
}
$view->display('/blog/404.php');
}

Auth::start(); и Auth::authentication(); -> Запускают сессию и проверяют есть ли у пользователя права для доступа. Ну и выдаёт доступ к ресурсам.

Router::start(); -> парсит урл, выделяет контроллер\метод, проверяет существование и вызывает их. В методах при необходимости вызывается класс View с дизайном, подключаются модели(если нужно). При отсутствии чего либо выбрасывается исключение которое ловится в индексе. Это стандартный MVC как я его понимаю(на данный момент).

Что происходит у вас? Какая xml структура? Нам пришёл GET запрос, его нужно обработать. Кто этим занимается? Фронт-контроллер? Куда он перенаправляет запрос? В обычные контроллеры? Что они из себя представляют? Классы? Функции? Просто файлы которые инклюдятся по какой то логике? Нужен код "пощупать". Выложите на гит хаб, да скиньте ссылку.

ArbNet:

Чем он будет лучше? Тем что легко настраивается, пишется с ноля без прикручивания других фреймворков и тд. Всё разложено по полочкам по узлам - это связка макета к которому если надо стили, php класс с методами обработки. Хотел сделать ОРМ, но отказался. Есть класс для работы с базой данных, при написании какого то узла с методами работы с базой этого вполне достаточно, плодить классы, наследовать и тд. Зачем? Те кто умеют делать запросы к базе и без надстроек смогут работать с базой. Возможно немного доработаю сам класс работы с базой, есть мысли делать сущности просто в массивах.

Документация пока в черновом варианте, постараюсь там сделать конкретные примеры.

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

Т.е. у вас каждый узел, это связка модели с отображением? Что произойдёт если нужно будет сменить дизайн для всего сайта? Допустим в блоге есть обычные блоговые посты и какие нибудь сингл посты(аля "обо мне"). Дизайн везде один и тот же(для блоговой структуры чуть другой, но незначительно). Допустим я захотел изменить цветовую схему. Её придётся менять в каждом узле? т.е. вспоминать где из какого узла, что выводится, где что лежит и менять? Звучит сложно и располагает к ошибкам.

Обёртку над драйвером БД нужно щупать. Может у вас там что-то вроде этого: https://github.com/colshrapnel/safemysql/blob/master/safemysql.class.php с типа подготовленными запросами, которые на самом деле нифига не подготовленные, а самые что ни на есть обычные, просто с проверкой данных перед подстановкой в запрос.

Конкретики по преимуществам я не вижу. Примеров - тоже.

Вот к примеру установка lumen: https://lumen.laravel.com/docs/6.x

Где по вашему проекту такая инструкция? Хоть какая то инструкция?

ArbNet:

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

Примеров я так понимаю тоже нет? Для не большого сайта, визитки, блога...даже магазина и wordpress подойдёт. И он 100% будет удобней и понятней для любого стороннего пользователя, благо информации в сети о его настройке море.

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

ArbNet:

3) Расширяемость элементарная. Нужен какой-то функционал, добавляется новый узел(директория в узлы), делаются шаблоны стилизуются, пишется php класс с методами. Готово. В структуре указывается что надо выводить на странице.

Окей, мне нужна отправка почты. после регистрации пользователя. В обычной ситуации я сделаю модель почты(один или несколько классов, не важно), кину это директорию моделей и подключу в нужном контроллере. У вас, я так понимаю, мне нужно сделать директорию почта(узел), потом там сделать класс моделей, потом в другом узле это подключить? Или в ядре? А Логи у вас что пишет?

И допустим я захотел поставить эту штучку https://github.com/sebastianbergmann/phpunit

Куда у вас я буду это ставить? Ваш фреймворк вообще рассчитан на работу с сторонними дополнениями?

Если нет - то никакой расширяемости у вас нет в принципе. А то что есть - есть у всех. Для wordpress бложика тоже не обязательно ставить плагины с репозиториев. Можно и свои писать с тем же функционалом. Вот только нафига?

ArbNet:

4) Пощупать пока нельзя. Хотел недавно выложить(тему вот создал) если б была заинтересованность, кто-то хотел бы помочь и в своих проектах использовать, передумал. Тороплюсь.. мало ещё что сделано чтобы продемонстрировать работу. Надо ещё доделывать...

В этом то и проблема. Вы пиарите проект, которого толком нет. Может это новый symfony рождается, а может никому не нужный и кривой велосипед. Пока - больше похоже на второе.

ArbNet:

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

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

Примеры и конкретика, Без неё не понятно. По вашим словам у вас узел, это помесь контроллера, модели и класса вьюв. Но я так и не услышал в чём преимущества над MVC? Выглядит как каша, никакой упорядоченности, никакой иерархии.

Я думаю что вы очень быстро начнёте путаться где у вас что лежит и что за что отвечает.

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

Как итог. Я не услышал никакой конкретики в сторону "за". Собственно у вас нет примеров и вы явно поспешили с пиаром своего проекта.

Я не увидел каких либо преимуществ такой структуры проекта над MVC. Напротив, мне кажется что очень быстро это приедёт к огромным потерям времени в попытках что-то поправить.

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

Масштабируемость и совместимость тоже под очень большим вопросом.

Реализация не вышла за пределы бложика. Достаточно простенкого(на данный момент).

Лично я потрачу свободное время на изучение того же PHPunitа или doctrine.

Sly32
На сайте с 29.03.2012
Offline
302
#88

ArbNet, А вы сможете прочитать следующий код, что он делает?


{% load static %}
<!DOCTYPE html>
<html lang="ru-RU">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="google-site-verification" content="*****" />
<meta name="google-site-verification" content="Pg2wuTK-******" />
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
{% block description %}
<meta property="og:locale" content="ru-Ru">
<meta property="og:type" content="main">
<meta property="og:title" content="{{ object.seo_title}} ">
<meta property="og:description" content="{{ object.seo_description|default_if_none:"уроки химии"}}">
<meta property="og:url" content="test">
<meta property="og:site_name" content="Химия">
<meta property="og:image" content="/media/{{ object.thumb}}">
{% endblock description%}

{% block keys %}
<title> {{ object.title }} </title>
<meta name="keywords" content="Химия {{ object.tags|default_if_none:'Химия, уроки химии, тесты по химии' }}">
<meta name="description" content="Химия {{ object.seo_description|default_if_none:'Химия' }}">
<meta name="author" content="химия">
{% endblock keys%}
{% block css %}
<link rel="stylesheet" href="{% static 'core/css/bootstrap-material-design.min.css' %}">
<link rel="stylesheet" href="{% static 'core/js/swiper/dist/css/swiper.min.css' %}">
<link rel="stylesheet" href="{% static 'core/css/style.css' %}">
{% endblock %}
{% block single_css %}{% endblock %}
<!-- Fav and touch icons -->
<link rel="shortcut icon" href="{% static 'core/images/favicon.ico' %}" type="image/x-icon">


{#<script src='https://www.google.com/recaptcha/api.js'></script>#}
</head>
<body>
{% block header %}
{% include 'core/menu/top_header.html' %}
{% include 'core/menu/main_menu.html' %}
{% endblock %}

{% block content %}
{% endblock %}

{% block modal %}
{% endblock %}

{% block footer %}
{% include 'core/footer.html' %}
{% endblock footer %}

{% block footer_script %}
{# <script src="{% static 'core/js/jquery-3.3.1.js' %}"></script>#}
<script src="{% static 'core/js/jquery.min.js' %}"></script>
{# <script src="{% static 'core/js/popper.min.js' %}"></script>#}
{# <script src="{% static 'core/js/bootstrap-material-design.js' %}"></script>#}
{# <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>#}
<script src="https://unpkg.com/popper.js@1.12.6/dist/umd/popper.js" integrity="sha384-fA23ZRQ3G/J53mElWqVJEGJzU0sTs+SvzG8fXVWP+kJQ1lwFAOkcUOysnlKJC33U" crossorigin="anonymous"></script>
<script src="https://unpkg.com/bootstrap-material-design@4.1.1/dist/js/bootstrap-material-design.js" integrity="sha384-CauSuKpEqAFajSpkdjv3z9t8E7RlpJ1UP0lKM/+NdtSarroVKu069AlsRPKkFBz9" crossorigin="anonymous"></script>
<script src="{% static 'core/js/maskedinput.js'%}" type="text/javascript"></script>
<script>$(document).ready(function() { $('body').bootstrapMaterialDesign(); });</script>
<script defer src="{% static 'core/js/swiper/dist/js/swiper.min.js' %}"></script>
<script defer src="{% static 'core/js/index.js' %}"></script>
<script defer src="{% static 'core/fontawesome-free-5.4.1-web/js/fontawesome.min.js' %}"></script>
<script defer src="{% static 'core/js/detect.min.js' %}"></script>

{% if not user.is_authenticated %}
{% if not user.is_superuser %}
#todo
{% endif %}
{% endif %}
{% endblock %}
{% block footer_script_inner %}{% endblock footer_script_inner %}

</body>
</html>



---------- Добавлено 14.03.2020 в 23:37 ----------

ArbNet:
Зачем? Те кто умеют делать запросы к базе и без надстроек смогут работать с базой.

Если порыть историю, можно найти слова о движке для тех, кто не разбирается(слабо) в программировании )))

Aisamiery
На сайте с 12.04.2015
Offline
293
#89

iworkshop, суть этого проекта - не использовать ничего готового, это его "фишка". Вам нужен phpunit - напишите свой =)))

Sly32
На сайте с 29.03.2012
Offline
302
#90
ArbNet:
Вот именно для ускорения создания сайтов я и делаю свой инструмент и чтобы он был ещё доступнее(проще в освоении,

Далеко искать не пришлось

---------- Добавлено 14.03.2020 в 23:41 ----------

Aisamiery:
суть этого проекта - не использовать ничего готового, это его "фишка". Вам нужен phpunit - напишите свой =)))

При этом:

бест практик - не не слышал

код стандарт - для слабаков

ну и прочее из этой же области)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий