Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/16: Рейтинг темы: голосов - 16, средняя оценка - 4.81
0 / 0 / 2
Регистрация: 10.10.2012
Сообщений: 98

Стиль кодинга

29.01.2013, 23:23. Показов 3182. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем,не знаю как продолжить изучать php.Уже знаю его довольно неплохо,могу писать средние системы, но код получается каким то неправильным..
Хотелось бы почитать(или посмотреть) как пишут реальные сайты в реальных компаниях, используют ли они MVC?Или как же они кодят,процедурно или на классах.

Гугл ничего не нашёл,подкиньте плиз мануальчик.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.01.2013, 23:23
Ответы с готовыми решениями:

Удобный инструмент для php - кодинга
Надеюсь этот инструмент понравится не только мне http://www.zend.com/en/community/pdt/downloads

С чего начать изучение веб кодинга?
Хочется немного научиться разбираться в веб-программировании - а начать с чего - не знаю. Конечно я все-таки хочу быть мего-кодером не...

Нижнее подчеркивание в именах приватных членов (стиль кодинга)
Довольно часто натыкаюсь на стиль кодинга, когда делают так: class A { int _x, _y, _z; public : int a, b, c, d, e; } Т.е.,...

30
28 / 50 / 2
Регистрация: 10.01.2012
Сообщений: 347
29.01.2013, 23:50
оформление кода вот так: https://github.com/php-fig/fig... r/accepted
а пишут вот так: http://symfony.com/doc/current/book/index.html
1
0 / 0 / 2
Регистрация: 10.10.2012
Сообщений: 98
30.01.2013, 00:03  [ТС]
За первую ссылку спасибо,а про то как пишут хотелось бы почитать на русском и как можно подробнее
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
30.01.2013, 02:06
lesromand, почитайте такую книгу http://www.ozon.ru/context/detail/id/5648968/
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
30.01.2013, 10:52
http://habrahabr.ru/post/38214/

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

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

Добавлено через 2 минуты
http://www.ozon.ru/context/detail/id/4884925/ - это супер-книга, но что бы понять написанное, нужно очень много времени и не раз перечитать прочитанное.
0
 Аватар для сэр Афим
34 / 34 / 2
Регистрация: 26.10.2010
Сообщений: 111
11.02.2013, 12:05
прошу прощения за небольшую некрофилию темы. Нынче модно следовать стандартам PSR, оных уже 4 набралось (по первой ссылке доступно). Но одно дело модно, другое практично, если с PSR-0 и PSR-1 я полностью соглашусь, то с PSR-2 критически не согласен, а скорее наоборот.
1) табы, вместо 4 пробелов по стандарту (значительнее меньше гемора, когда пытаешься выровнять код, у нас не 90 года, когда табам нельзя было задать размер и они в терминале вытягивались на пол страницы)
2) 80 символов, вместо 120 (хотя это спорно)
3) фигурная скобка на той же строке, что и любая директива, включая объявление класса. Скобка на другой строке - это полный дебилизм, который создаст кучу проблем (особенно, когда такую привычку переносишь на JS, Ruby и проч.)
4) не согласен с пробелом между обычной и фигурной скобками, скобки не надо отделять пробелами, а следует отделять внутренности условных выражений - так можно акцентировать и выделить само выражение, нежели отдельные управляющие конструкции.

Думаю что многие со мной согласятся, взять хоть пример оттуда:

думаю что такое:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
namespace Vendor\Package;
 
use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
 
class Foo extends Bar implements FooInterface{
    public function sampleFunction( $a, $b = NULL ){
        if( $a === $b ){
            bar();
        }else if( $a > $b ){
            $foo->bar( $arg1 );
        }else{
            BazClass::bar( $arg2, $arg3 );
        }
    }
 
    final public static function bar(){
        // method body
    }
}
будет выглядеть более лаконично и привычнее, чем:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
namespace Vendor\Package;
 
use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
 
class Foo extends Bar implements FooInterface
{
    public function sampleFunction($a, $b = null)
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }
 
    final public static function bar()
    {
        // method body
    }
}
почему же тогда не:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
if ($a === $b)
{
    bar();
}
elseif ($a > $b)
{
    $foo->bar($arg1);
}
else
{
    BazClass::bar($arg2, $arg3);
}
??? стандарт какой-то разношёрстный получился
0
28 / 50 / 2
Регистрация: 10.01.2012
Сообщений: 347
11.02.2013, 15:03
пример "оттуда" не такой как вы показали, он находится вот тут https://github.com/php-fig/fig... 11-example

и выглядит он лучше, чем ваш вариант

с пробелами вместо табов проблем нету, когда есть адекватный редактор, а вот гарантия, что везде код с табами убдет адекватно выглядеть - нету, а с прбелами 100%.
1
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
11.02.2013, 16:40
только приучился писать как во втором примере, и тут на тебе, уже не так как нужно
0
 Аватар для сэр Афим
34 / 34 / 2
Регистрация: 26.10.2010
Сообщений: 111
11.02.2013, 21:36
Цитата Сообщение от d1gi Посмотреть сообщение
пример "оттуда" не такой как вы показали, он находится вот тут
между прочим в моём сообщении указано, что из первой ссылки взято


Цитата Сообщение от d1gi Посмотреть сообщение
с пробелами вместо табов проблем нету, когда есть адекватный редактор, а вот гарантия, что везде код с табами убдет адекватно выглядеть - нету, а с прбелами 100%.
проблем нету? Уважаемый, а вы хоть раз работали с питоном, HAML, Slim, Jade? Вот мне приходилось, и скажу вам... ладно, ничего не буду говорить =)))) но когда ставишь лишний пробел, пока форматируешь что-либо - отыскать его оооочень трудно. Да, я помню те времена, когда пользовал Turbo C++ и табы улетали на пол страницы, но япона бог, на дворе 2013 год, даже мастхев mcedit или вордпад (тьфу-тьфу) вполне прилично отображают табы.

Хотя нет, всё же пробелы лучше, вспоминается мне qbasic, пробелы, гоуту, глобальные переменные.... *сарказм* =))))


Цитата Сообщение от alpex Посмотреть сообщение
только приучился писать как во втором примере, и тут на тебе, уже не так как нужно
приучиваться как раз надо к "Единственному Правильному Скобочному Стилю", ака стилю K&R и не только из-за того, что ядро никсов в таком формате. Я понимаю влияние VS со стилем Олмана, но это не верно. Можно допустить довольно много ошибок, просто из-за скобки на другой строке, пример:
консолька ->
JavaScript
1
2
3
4
5
 (function(){
    return {
      some: 42
    };
})();
что будет в результате?
а если так?
JavaScript
1
2
3
4
5
6
(function(){
    return 
    {
      some: 42
    };
})();
это просто скобочку перенесли по привычке, что такого? разницы никакой, только в первом случае будет объект, во-втором undefined...

Добавлено через 58 секунд
>> между прочим в моём сообщении указано, что из первой ссылки взято
прошу прощения, не внимательно прочитал ваш коммент

Добавлено через 1 минуту
ох, не понимаю как пост сдублировался случайно. Уважаемые модераторы, если не сложно - удалите пожалуйста дубликат
0
28 / 50 / 2
Регистрация: 10.01.2012
Сообщений: 347
11.02.2013, 21:39
сэр Афим, PSR относится только к PHP
0
 Аватар для сэр Афим
34 / 34 / 2
Регистрация: 26.10.2010
Сообщений: 111
11.02.2013, 21:43
Ах да, ссылки по теме: http://ru.wikipedia.org/wiki/%... 0%B8%D0%B5) если кому интересно

Добавлено через 2 минуты
Цитата Сообщение от d1gi Посмотреть сообщение
сэр Афим, PSR относится только к PHP
конечно к PHP, но привычка вырабатывается одна. Я использовал разные языки и привычек форматирования не менял (ну за исключением VS ), при этом ни одной ошибки из-за форматирования - никогда не было да и невозможно их допустить. При использовании же стиля Олмана - вам просто придётся менять оформление кода, используя разные языки программирования.
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
11.02.2013, 23:08
Цитата Сообщение от сэр Афим Посмотреть сообщение
1) табы, вместо 4 пробелов по стандарту (значительнее меньше гемора, когда пытаешься выровнять код, у нас не 90 года, когда табам нельзя было задать размер и они в терминале вытягивались на пол страницы)
2) 80 символов, вместо 120 (хотя это спорно)
3) фигурная скобка на той же строке, что и любая директива, включая объявление класса. Скобка на другой строке - это полный дебилизм, который создаст кучу проблем (особенно, когда такую привычку переносишь на JS, Ruby и проч.)
4) не согласен с пробелом между обычной и фигурной скобками, скобки не надо отделять пробелами, а следует отделять внутренности условных выражений - так можно акцентировать и выделить само выражение, нежели отдельные управляющие конструкции.

Думаю что многие со мной согласятся, взять хоть пример оттуда:

думаю что такое:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
namespace Vendor\Package;
 
use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
 
class Foo extends Bar implements FooInterface{
    public function sampleFunction( $a, $b = NULL ){
        if( $a === $b ){
            bar();
        }else if( $a > $b ){
            $foo->bar( $arg1 );
        }else{
            BazClass::bar( $arg2, $arg3 );
        }
    }
 
    final public static function bar(){
        // method body
    }
}
будет выглядеть более лаконично и привычнее, чем:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
namespace Vendor\Package;
 
use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
 
class Foo extends Bar implements FooInterface
{
    public function sampleFunction($a, $b = null)
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }
 
    final public static function bar()
    {
        // method body
    }
}
1. использование пробелов никаких проблем не доставляет, а с помощью табов ничего путного отформатировать не удастся. не говоря уже о вставке кода в любые другие редакторы.

3. не дибилизм, а стиль, имеющий право жить

4. будет выглядеть более лаконично и привычнее?? первый пример - ужас.
0
 Аватар для сэр Афим
34 / 34 / 2
Регистрация: 26.10.2010
Сообщений: 111
11.02.2013, 23:22
насчёт примера - согласен, не совсем удачный, Олман имеет право жить - тоже согласен. На счёт вставки кода в другие редакторы - не согласен, сколько уже и саблаймом, и нотпадом, и пыхштормом, и дримвивером, и зендом пользуюсь - никаких проблем не возникало ни разу, даже в виме и нано, а это думаю самые хардкорные редакторы, что можно придумать - сам проверь, всё замечательно работает. Другое дело, что в нотпаде++ и phpstorm с пробелами как раз проблемы при редактировании.

В любом случае - один символ на строке и вытянутая на несколько "экранов" вниз листовка кода - это не слишком хорошо, горизонтальное пространство очень важно.
0
 Аватар для alpex
603 / 578 / 103
Регистрация: 16.07.2012
Сообщений: 1,762
12.02.2013, 05:41
Цитата Сообщение от сэр Афим Посмотреть сообщение
это просто скобочку перенесли по привычке, что такого? разницы никакой, только в первом случае будет объект, во-втором undefined...
это особенности js, в php можно и так написать и будет все работать правильно
PHP
1
2
3
4
5
6
function foo()
{
    return
    1
    ;
}
0
 Аватар для сэр Афим
34 / 34 / 2
Регистрация: 26.10.2010
Сообщений: 111
12.02.2013, 17:12
Цитата Сообщение от alpex Посмотреть сообщение
это особенности js, в php можно и так написать и будет все работать правильно
конечно можно и будет работать. Повторюсь, я против Олмана просто потому, что это надёжный способ форматирования лишь в частных случаях. Человек привыкший к Олману будет допускать неимоверное количество ошибок, при переходе на руби, кофе или JS (последний случай, к слову довольно часто случается), просто потому, что не знает каких-либо тонкостей этого языка, поэтому привыкать начинающим к Олману - я бы не советовал никак.

Добавлено через 17 минут
поэтому привыкать начинающим к Олману - я бы не советовал никак.
а советы мы даём как раз начинающему, по моему
1
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
13.02.2013, 05:48
сэр Афим, твой стиль просто отвратителен и ужасен
Именно поэтому PSR и сделало стиль, который будет казаться ужасным для наименьшего количества людей.

Однако каким бы ужасным не был стиль, надо ему следовать всем. Даже ужасному. Для единообразия.
0
 Аватар для сэр Афим
34 / 34 / 2
Регистрация: 26.10.2010
Сообщений: 111
13.02.2013, 14:06
Цитата Сообщение от OnYourLips Посмотреть сообщение
сэр Афим, твой стиль просто отвратителен и ужасен
really?
https://github.com/SerafimArts... hidori.php
https://github.com/SerafimArts... .Model.php
ну и т.д.
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
13.02.2013, 18:00
Цитата Сообщение от сэр Афим Посмотреть сообщение
really?
Конечно. Потому что он непривычен большинству.

1. Кстати ты можешь воочию убедиться в том, почему плохи табы вместо пробелов, посмотрев на код по ссылке:
1) он выглядит иначе, чем в твоей среде разработки.
2) код выглядит неверно (выравнивания друг под другом) при разной ширине таба - посмотри на константы Db.

2. Принято не выбрасывать \Exception (базовый тип исключений). Ты должен объявить свои классы.
3. in_array
4. Db::append ничего не делает. Его нужно либо убрать, либо объявить абстрактным.
0
 Аватар для сэр Афим
34 / 34 / 2
Регистрация: 26.10.2010
Сообщений: 111
13.02.2013, 18:09
Цитата Сообщение от OnYourLips Посмотреть сообщение
2. Принято не выбрасывать \Exception (базовый тип исключений). Ты должен объявить свои классы.
3. in_array
4. Db::append ничего не делает. Его нужно либо убрать, либо объявить абстрактным.
ну япона бог, я уж давно забил на этот код =))) сейчас в приоритете активрекорды на js


Цитата Сообщение от OnYourLips Посмотреть сообщение
1) он выглядит иначе, чем в твоей среде разработки.
угу, у меня с подсветкой он

Добавлено через 33 секунды
Цитата Сообщение от OnYourLips Посмотреть сообщение
2) код выглядит неверно (выравнивания друг под другом) при разной ширине таба - посмотри на константы Db.
там просто один пробел затесался лишний - сам посмотри
0
Сексуальный
 Аватар для mialpet
84 / 49 / 1
Регистрация: 02.04.2013
Сообщений: 443
19.04.2013, 13:34
Табы рулят, пробелы для тех кому заняться больше нечем.
Whitesmiths style рулит, кучный каир для тех кому заняться больше нечем кроме как разбираться что же там написано в тех 5-ти строчках которые только что сам написал.
PSR отстой, а это
Цитата Сообщение от OnYourLips Посмотреть сообщение
Однако каким бы ужасным не был стиль, надо ему следовать всем. Даже ужасному.
глупость. Даешь альтернативу, а пока ее нет, идите в сад, медитируйте! (это я тем кто будет заставлять меня писать по такому стандарту)
А топик в раздел холиваров
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2013, 13:34
Помогаю со студенческими работами здесь

Как изменить стиль формы и вообще всех объектов на свой стиль?
Собственно вопрос в том как изменить стиль формы и вообще всех объектов на свой стиль?

Как задать новый стиль для тега, у которого уже есть стиль
Привет всем. У меня есть вот такая запись в таблице стилей #c_menu li{ list-style:none; padding: 5px 0px; border-bottom: 1px solid...

Как динамически присвоить стиль кнопке, если стиль описан в файле xaml?
Здравствуйте, столкнулся с проблемой: нужно в коде присвоить стиль кнопке. Этот стиль находится в xaml с определённым x:Key. Я в этой...

Перевод дат: старый стиль — новый стиль (и наоборот)
Кажется, довёл до ума документ Word из темы https://www.cyberforum.ru/vba/thread189947.html#10 Он вот здесь, но мало кто его потыкал,...

Музыка для кодинга
Собственно, где её найти, хорошую, прям...&quot;качевую&quot; чтоли? Может кто просто какое название такой музыки даст?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru