Как делать не надо - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Fri, 26 Apr 2024 10:11:03 +0300 43. <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 Как делать не надо Tadochi Sat, 17 Aug 2013 20:33:00 +0400 Сообщения https://visavi.net/topics/38217/643771 38,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 &quot;?&gt;&quot; в полностью php файле - плохой стиль.<br> 3. Вывод ошибки и список ошибок в одном методе - плохо.<br> 4. throw new Exception(&#039;Не удалось получить данные&#039;); в методе обработки данных - тоже не гуд. Т.е. данное исключение должен выбрасывать метод получения данных, а не метод обработки. https://visavi.net/topics/38217/639245 Как делать не надо Ant0ha Sat, 29 Jun 2013 17:20:54 +0400 Сообщения https://visavi.net/topics/38217/639245 3. 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/639213 37. <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/638893 33. <strong>valerik</strong>, ну да в общем то,<br> в первом варианте индокод получается,<br> а во втором как надо )) https://visavi.net/topics/38217/638883 Как делать не надо GodZiLLa Sun, 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"> &lt;?php function one(){ //Проверяем что-то, выбиваем ошибку if($something){ throw new Exception(&#039;Тут ошибка чувак&#039;); } //Используем ещё какую то функцию $a = secondFunc(); } function secondFunc(){ //Проверяем что-то, выбиваем ошибку if($something){ throw new Exception(&#039;Тут ошибка чувак во второй функции&#039;); } //А тут используем ещё какую то функцию $b = thirdFunc(); } function thirdFunc(){ //Проверяем что-то, выбиваем ошибку if($something){ throw new Exception(&#039;Тут ошибка чувак в 3ей функции&#039;); } } //А в итоге мы обрабатываем сразу все возможные внутри ошибки одним движением try{ $a = one(); }catch(Exception $e){ echo $e-&gt;getMessage(); } ?&gt; </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-&gt;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">&lt;?php if(!$dir-&gt;recover()){ // $dir-&gt;error; }</pre> И <br> <pre class="prettyprint">&lt;? try {$dir-&gt;recover() } catch (Exception $e) { echo &#039;Выброшено исключение&#58; &#039;, $e-&gt;getMessage(), &quot;\n&quot;; }</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 Как делать не надо iNeeXT Sat, 22 Jun 2013 01:08:11 +0400 Сообщения https://visavi.net/topics/38217/638795