Подумал а вось кому будет интересно порассуждать об особенностях разработки без фреймворков. Только давайте без копетанства мол это не поможет найти работу и всего в таком духе...
Development
24 3 362
30
jquery устарел уже в реалиях современных браузеров и просто предоставляет бесполезные обертки над стандартными функциями JS
Обёртки над js всёравно нужно писать ибо таже работа с DOM на чистом js то ещё удовольствие, а единый синтаксис для них это удобно. Да и в глобальное пространство имён он вводит всего две переменные, что не мешает писать на чистом js сколько душе угодно. Да и не забывайте, что в ТЗ всегда может быть строчка о поддержке старых браузеров.
фуу
Аргументация уровня бог
Для этого придумали IDE, которая все делает за тебя
Autoloading уже всё сделал за меня, зачем мне ещё в каждом файле протыкивать инклуды?


alexprey, посмотрел я на Svelte и вы ещё ругаете jQuery в лишних обёртках
Притом абсолютно то же самое умеет smarty, притом одни и теже шаблоны он может собирать как на бэке, так и на фронте.
Загруженные файлы
29
Свелт пока упустим, так как это скорее компилятор нежели фреймворк.
ну так ты же хотел без фреймворков, вот пожалуйста
NazarPunk:
Теже jQuery
jquery устарел уже в реалиях современных браузеров и просто предоставляет бесполезные обертки над стандартными функциями JS~NazarPunk:
Я вообще в php херачу всё на классах со статическими методами
фуу
не лень писать инклуды или запоминать нэймспэйсы.
Для этого придумали IDE, которая все делает за тебя
30
Хоть подходы и разные, по сути все они передают тебе в руки заготовки архитектуры в обмен на те проблемы что я описал.
Архитектурой в приведённых мной фрэймворках и не пахнет. Они просто позволяют делать некоторые банальные вещи проще и быстрее.

Я вообще в php херачу всё на классах со статическими методами ибо мне лень писать инклуды или запоминать нэймспэйсы. Архитектурой в этом случаем можно вертеть в любом направлении, а фрэймворки только делают банальные вещи проще.

Дешёвый роутер
index.php
ini_set("display_errors", 1);
error_reporting(E_ALL);

(function () {
	include 'include/config.php';
	include 'include/autoloader.php';
	include 'include/defines.php';
	include 'include/class/vendor/Smarty/Smarty.class.php';

	define('IS_AJAX', false);

	header::cache(false);

	comet::connect();

	try {
		router::route();
	} catch (Throwable $e) {
		http_response_code(404);
		echo '<pre>';
		echo $e->getMessage();
		echo str_repeat(chr(13) . chr(10), 2);
		var_dump($e->getTrace());
		echo '</pre>';
	}
})();
router.php
class router {
	public static function uri() {
		static $out = null;
		if (is_array($out)) return $out;

		$uri = (stripos($_SERVER['REQUEST_URI'], '?')) ? stristr($_SERVER['REQUEST_URI'], '?', true) : $_SERVER['REQUEST_URI'];
		$out = explode('/', substr($uri, 1));

		for ($i = 0; $i <= 10; $i++) {
			$out[$i] = array_key_exists($i, $out) ? trim($out[$i]) : '';
		}

		if (!preg_match('/^[a-z0-9_-]+$/i', $out[0])) $out[0] = 'home';
		return $out;
	}

	public static function route() {
		$uri = self::uri()[0];

		if (in_array($uri, ['signout', 'sign-out', 'logout'])) user::signOut();

		$folder = $uri === 'root' ? '/admin/page' : '';
		$path   = SMARTY_TEMPLATE_DIR . "/page$folder/$uri/$uri.php";

		if (is_readable($path)) {
			include $path;
			return;
		}

		header::noFound(true);
	}
}
21
NazarPunk, хороший вопрос. Чтоб не начинать об этом думать, я просто отошлюсь к четырем пунктам с преамбулы как определяющим характеристикам.
очень ускоряют процесс разработки
Хоть подходы и разные, по сути все они передают тебе в руки заготовки архитектуры в обмен на те проблемы что я описал. Подумалось знает ли кто какие оптимальные подходы к проектированию веб-апок без фреймворков. Свелт пока упустим, так как это скорее компилятор нежели фреймворк.
30
Что подразумевается под фрэймвоком? Теже jQuery, Bootstrap, smarty очень ускоряют процесс разработки и позволяют контролировать всё что хочется.
29
Svelte - фреймворк без фреймворка, пишешь компонентны на html + inline css (scss, less) + нативный js (typescript), в итоге все сворачивается в красивый код без лишнего непотребства и оберток. Иногда случаются нюансы, но редко и вполне решаемо.
21
Думаю чтоб было по-честному, начать стоит мне, пусть и с банальщины.
  • без компонентов не обойтись, по сути это и есть ООП
  • в качестве альтернативы я вижу веб-компоненты
  • компайлинг в статичные файлы в процессе сборки тоже вполне ничего себе подход
  • это лучше для мозгов, меньше магии, больше контроля

архитектура?

Если в случае с фреймворком это просто древо компонентов, то без фреймворков все не настолько очевидно.
Как правильней называть то? Старая статья удалена из-за чрезмерной токсичности. На инглише потому что... могу и лень переводить.
Thoughts
3 789
21
Выбор делается не на ровном месте, как-бы...
9
Any convictions are consequences of the experience. Hence if one has any convictions then there must be an experience that is the reason why they exist.
Ты так договоришься до того, что выбора не существует. Предпочитаю не докапываться до таких выводов - себе дороже.
21

Прогнал сеё через нейронку:

  • Hence to self-develop, once we have acquired a certain amount of experience we should re-evaluate how we experience things. I'm not suggesting that the way we experience an emotion should be considered before it occurs. It might not.
  • When one re-examines one's experience one must make certain judgments about what they know, and how they know it, and about the consequences of this knowledge when given.
  • There is a process of synthesis between the subject's beliefs and their experience. In other words, one cannot have knowledge about something until one has had an experience.
  • This is especially vital if one is to develop into a true "cognitivist" and to be free of the false beliefs of the ego.
  • I know that I am alive. I have knowledge that has lead me to this conclusion. I therefore have a belief in immortality because that belief makes it possible to re-interpret all the other possibilities and experiences that are possible.
  • The ability to learn (the facts of the world) becomes much more available if one is motivated to apply what is known to create better understanding of these new facts.
  • One should always remember that a person is not born.
  • A person can be convinced of the truth of certain things. For example, one can't be convinced of the truth that there are no gods. However, one can convince themselves of the truth of the existence of gods if that is what is necessary for them to live with a happy life.
  • When we perceive an instance of a phenomenon we tend to get caught up in the experience it creates, we do not think carefully about what we are perceiving and what our experience is. We tend to over-reliance on our senses and our ability to interpret the experience.
  • With consciousness one can either 'know it' or 'not know it' at some level. For example, we 'know' the colour red because the experience is coloured, but not because the colour exists.

И многое другое, но я ниасилил. Голова начала трещать.