Как делать не надо - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Wed, 25 Dec 2024 07:59:00 +030043. <strong>Башка</strong>, скорость у тебя, конечно, впечатляет! Плюс, ты как Цезарь, параллельно выполняешь несколько вещей. Пишешь, объясняешь и продумываешь что-то наперед. Я так не могу.<br>
<br>
От себя добавлю, я бы добавил в проект директорию \templates, которая должна хранить .tpl шаблоны. В пакет \libraries - статический класс шаблонизации, используемый в пакете \view. Ну и, само собой, роутинг, куда уж без него. И для общей кошерности не хватает класса кеширования, который бы проверял наличие кеша комнаты или выбранного сообщения и при его отсутствии дергал класс БД для получения информации.<br>
<br>
У меня структура немного отличается от приведенной у тебя, хотя общего все равно много.<br>
<br>
В директории \apps лежат поддиректории \models, \controllers, \view и \libs. Классы всех моделей хранятся в \models, всех контроллеров - в \controllers. И т.д. В \libs хранятся классы по работе с PDO, куками, шаблонизатор, роутер и прочие общие классы.<br>
<br>
Алгоритм примерно такой:<br>
- при HTML запросе дергается роутер, в котором обрабатываются все входящие данные, обрабатываются ошибки и определяется модель, необходимая для обработки запроса;<br>
- запускается контроллер, обрабатывающий именно эту модель;<br>
- контроллер запускает модель и получает из нее результат ее работы;<br>
- после получения информации из модели, контроллер запускает вид, в который передает то, что отдала модель; <br>
- Задача вида - принять то, что передал в нее контроллер, подключить шаблонизатор и отдать ему данные. <br>
- Шаблонизатор выводит все на страницу. Профит.<br>
<br>
Все что касается PDO, сессий, кук и прочего - использую аналогичный подход как в твоем примере.
https://visavi.net/topics/38217/652822
Как делать не надо ДмитрийWed, 04 Dec 2013 23:57:16 +0400Сообщенияhttps://visavi.net/topics/38217/652822<a href="http://youtu.be/tZNJy9H2TGg" target="_blank" rel="nofollow">http://youtu.be/tZNJy9H2TGg</a><br>
4. Современная структура гостевой книги
https://visavi.net/topics/38217/652791
Как делать не надо АртурWed, 04 Dec 2013 22:23:24 +0400Сообщенияhttps://visavi.net/topics/38217/652791Тема актуальна? если да то вот <a href="http://tadochi.spaces.ru/files/?read=42561939" target="_blank" rel="nofollow">http://tadochi.spaces.ru/files/?read=42561939</a>
https://visavi.net/topics/38217/643771
Как делать не надо TadochiSat, 17 Aug 2013 20:33:00 +0400Сообщенияhttps://visavi.net/topics/38217/64377138,40 спасибо
https://visavi.net/topics/38217/639247
Как делать не надо ИзнаурSat, 29 Jun 2013 17:39:36 +0400Сообщенияhttps://visavi.net/topics/38217/639247<blockquote class="blockquote"><strong>Iznaur95</strong> (27 Июня 2013 / 12:13)<br>
<a href="https://github.com/Reistlin/yandexApi/blob/master/ApiYandex.php" target="_blank" rel="nofollow">https://github.com/Reistlin/yandexApi/blob/master/ApiYandex.php</a> если не сложно рассмотри,особенно интересует правильно ли я использовал public,protected,private?и как лучше было бы написать выбрасывание исключений?</blockquote>
<br>
1. Кода действительно мало чтобы оценивать.<br>
2. В основном, претензии к форматированию (имя переменной с заглавной буквы, нет отступов между конструкциями if и тп). Да и в целом нет принадлежности к стандартам: camelCase (psr) или snake_case (kohana style, etc). <br>
Закрывающий тег php "?>" в полностью php файле - плохой стиль.<br>
3. Вывод ошибки и список ошибок в одном методе - плохо.<br>
4. throw new Exception('Не удалось получить данные'); в методе обработки данных - тоже не гуд. Т.е. данное исключение должен выбрасывать метод получения данных, а не метод обработки.
https://visavi.net/topics/38217/639245
Как делать не надо Ant0haSat, 29 Jun 2013 17:20:54 +0400Сообщенияhttps://visavi.net/topics/38217/6392453. Pagination<br>
<a href="http://www.youtube.com/watch?v=l2xaiGHvdsc" target="_blank" rel="nofollow">http://www.youtube.com/watch?v=l2xaiGHvdsc</a><br>
<a href="http://youtu.be/G6lsKHjlXoA" target="_blank" rel="nofollow">http://youtu.be/G6lsKHjlXoA</a>
https://visavi.net/topics/38217/639213
Как делать не надо АртурFri, 28 Jun 2013 22:11:33 +0400Сообщенияhttps://visavi.net/topics/38217/63921337. <strong>Iznaur95</strong>, в твоем коде так мало ошибок, за которые можно зацепиться, что мне стыдно за них цепляться. Потому видеообзор на этот код делать не буду.
https://visavi.net/topics/38217/639207
Как делать не надо АртурFri, 28 Jun 2013 20:49:49 +0400Сообщенияhttps://visavi.net/topics/38217/639207<a href="https://github.com/Reistlin/yandexApi/blob/master/ApiYandex.php" target="_blank" rel="nofollow">https://github.com/Reistlin/yandexApi/blob/master/ApiYandex.php</a> если не сложно рассмотри,особенно интересует правильно ли я использовал public,protected,private?и как лучше было бы написать выбрасывание исключений?
https://visavi.net/topics/38217/639096
Как делать не надо ИзнаурThu, 27 Jun 2013 12:13:08 +0400Сообщенияhttps://visavi.net/topics/38217/639096Слава героям<br>
<a href="http://www.youtube.com/watch?v=mUr28o8h1pg" target="_blank" rel="nofollow">http://www.youtube.com/watch?v=mUr28o8h1pg</a>
https://visavi.net/topics/38217/638893
Как делать не надо АртурMon, 24 Jun 2013 00:18:17 +0400Сообщенияhttps://visavi.net/topics/38217/63889333. <strong>valerik</strong>, ну да в общем то,<br>
в первом варианте индокод получается,<br>
а во втором как надо ))
https://visavi.net/topics/38217/638883
Как делать не надо GodZiLLaSun, 23 Jun 2013 20:56:50 +0400Сообщенияhttps://visavi.net/topics/38217/638883Понял, спасибо
https://visavi.net/topics/38217/638846
Как делать не надо МихаилSat, 22 Jun 2013 21:56:11 +0400Сообщенияhttps://visavi.net/topics/38217/638846Я вижу преимущество исключений вот в чём.<br>
Допустим есть функция, она внутри себя использует ещё какую то функцию, та в свою очередь может использовать ещё что-то..<br>
<pre class="prettyprint">
<?php
function one(){
//Проверяем что-то, выбиваем ошибку
if($something){
throw new Exception('Тут ошибка чувак');
}
//Используем ещё какую то функцию
$a = secondFunc();
}
function secondFunc(){
//Проверяем что-то, выбиваем ошибку
if($something){
throw new Exception('Тут ошибка чувак во второй функции');
}
//А тут используем ещё какую то функцию
$b = thirdFunc();
}
function thirdFunc(){
//Проверяем что-то, выбиваем ошибку
if($something){
throw new Exception('Тут ошибка чувак в 3ей функции');
}
}
//А в итоге мы обрабатываем сразу все возможные внутри ошибки одним движением
try{
$a = one();
}catch(Exception $e){
echo $e->getMessage();
}
?>
</pre>
Вот в чём удобство то. Все возможные ошибки обрабатываются одним движением, при этом внутри всех этих функций не нужны ни какие свои механизмы обработки ошибок. Как это будет старым способом выглядеть? Хреново будет выглядеть старым способом.
https://visavi.net/topics/38217/638820
Как делать не надо ВалерийSat, 22 Jun 2013 13:04:04 +0400Сообщенияhttps://visavi.net/topics/38217/638820Постараюсь объяснить.<br>
Ошибка в ОО коде ведет к принудительному завершению выполнения, если ошибка не обрабатывается (The Diaper Pattern Stinks), это нужно для того, чтобы не оставлять в системе не обработанные ошибки. Вообще, если дать волю программистам, они никогда не будут смотреть в свойство $dir->error, а try..catch заставляет это делать, иначе бяда. Потому этот подход хоть и несколько страдает в читаемости в общем смысле, зато делает процесс обработки ошибок более строгим.
https://visavi.net/topics/38217/638808
Как делать не надо АртурSat, 22 Jun 2013 11:36:15 +0400Сообщенияhttps://visavi.net/topics/38217/638808<blockquote class="blockquote"><strong>Башка</strong> (21 Июня 2013 / 23:50)<br>
26. <strong>Flyd</strong>, вопрос не удобства, вопрос качества и читаемости. Есть механизм исключений, и есть механизм их отлова. Коды ошибок - устарело. Иногда лучше сделать сложнее, но качественее, как в случае с исключениями. Лучше пользуйтесь ими, советую</blockquote>
Я что-то не улавливаю улучшение читаемости от того, что написать <br>
<pre class="prettyprint"><?php
if(!$dir->recover()){
// $dir->error;
}</pre>
И <br>
<pre class="prettyprint"><?
try {$dir->recover()
} catch (Exception $e) {
echo 'Выброшено исключение: ', $e->getMessage(), "\n";
}</pre>
https://visavi.net/topics/38217/638796
Как делать не надо МихаилSat, 22 Jun 2013 01:21:04 +0400Сообщенияhttps://visavi.net/topics/38217/638796Напишу свой класс для работы с протоколом IRC и выложу для видео.<br>
Рассмотришь, когда будет время.
https://visavi.net/topics/38217/638795
Как делать не надо iNeeXTSat, 22 Jun 2013 01:08:11 +0400Сообщенияhttps://visavi.net/topics/38217/638795