Красота кода

Windows лучше чем Linux! Чем? Ясно же написано — чем Linux!
Раздуй свой холивар сегодня, потому что завтра это может сделать уже кто-то другой!

Как выглядет ваш код?

Как в пример
0
Ответы отсутствуют.
Очень похоже на пример
1
3%
Лучше
7
23%
Намного лучше
5
17%
Я знаю, где находиться клавиша <Tab>
17
57%
 
Всего голосов : 30

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Красота кода

Сообщение Ramzes » 24.10.2006 (Вт) 13:06

сижу я тут, и "выравниваю код" после одного злобного программиста, который не знает, что такое отступы и как ими пользоваться.
Код: Выделить всё
            public void InsRec() //SqlConnection conn)
            {
                        double ostat = 0;
                        //Записи кот. были добавлены
                        Data dsadd = hset.GetChanges(DataRowState.Added) as Data;
                        if (dsadd != null)
                        {
                                //Data dbsUpd = hset.GetChanges(DataRowState.Modified) as Data;
                                //MessageBox.Show("Существуют добавленные строки");
                                foreach (Data.DocBaseRow drowb in dsadd.DocBase.Select("REFDOCINSTANCE=" + hrow.ID))
                                        //foreach (Data.DocBaseRow drowb in dbsUpd.DocBase.Select("REFDOCINSTANCE=" + hrow.ID))
                                        {
                                                ExecuteSql(1, @"
declare @P1 int
select @P1= (select isnull(max(RecIndex),0)+1 from " + docmen.tableNameBO + @"(nolock)
where RefDocinstance = " + drowb.REFDOCINSTANCE + @")
--set implicit_transactions on
insert into " + docmen.tableNameBO + @"(ID,Refdocinstance,RecIndex)
values (" + drowb.ID + @"," + drowb.REFDOCINSTANCE + @",@P1)
--IF @@TRANCOUNT > 0  COMMIT TRAN   
--set implicit_transactions off");

//                                                      Trace.WriteLine("Перед добавлением б. строки в документ:" + ID + " c b ID = " + drowb.ID);
//                                                      Trace.WriteLine("Добавлена б. строка в документ:" + ID + " c b ID = " + drowb.ID);
                        if (docmen.tableNamePrice == "")
                        {
                            ExecuteSql(1, @"
update " + docmen.tableNameBO + @" set
ArticleRef=" + drowb.ARTICLEREF + @",
ArticleName=(select Code+' - '+NameArticle1 from article where ID=" + drowb.ARTICLEREF + @"),
"+docmen.tableNameQnty+"=" + drowb.QNTY + @"
where ID =" + drowb.ID);

                        }
                        else
                        {
                            ExecuteSql(1, @"
update " + docmen.tableNameBO + @" set
ArticleRef=" + drowb.ARTICLEREF + @",
ArticleName=(select Code+' - '+NameArticle1 from article where ID=" + drowb.ARTICLEREF + @"),
Price=" + drowb.PRICE + @",
"+docmen.tableNameQnty+"=" + drowb.QNTY + @"
where ID =" + drowb.ID);
                        }
                        ExecuteSql(1, @"
---             //Очистка дет. строк, созданных триггером
set textsize 9999
--set implicit_transactions on
delete " + docmen.tableNameSO + @"
where refdocinstance=" + hrow.ID + @" and refbasePL=" + drowb.ID + @"
--IF @@TRANCOUNT > 0  COMMIT TRAN   
--set implicit_transactions off
set textsize 4981");

ну как такое можно читать? а тем более править??? :shock:

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 24.10.2006 (Вт) 13:45

Жесть какая. Я после жениха обычно равняю код, когда ищу, где же он не закрыл скобочку в JScript, когда возмущается, что что-то не работает. Только, у него более клинический случай - он вообще отступы не ставит, а просто пишет все сплошняком. Да ещё и сильно любит вещи вида:
Код: Выделить всё

if (t==1) {k=5}
for (i=1; i>10; i++) { k=k+t; e=k; h++ }

Вот и разбери такой код потом, особенно, когда его много. :(
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 24.10.2006 (Вт) 13:59

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

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.10.2006 (Вт) 14:02

Oxygen

У меня такая же привычка писать код. What was hard to write should be hard to understand :)



И да, я знаю где находится Tab :)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 24.10.2006 (Вт) 15:08

пока все знают где находится клавиша Tab
Весь мир матрица, а мы в нем потоки байтов!

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 24.10.2006 (Вт) 15:12

Ещё убивают отсутствие комментов, и совершенно дурацкие названия переменных и функций. Я долго думала, что же означает название переменной pohodil в его крестиках и ноликах, которые он попросил посмотреть, и сделать так, что бы они работали. Оказался флаг, означающий походил компьютер или нет. :?

Вообще предпочитаю, что бы все переменные, за исключением параметров в функциях назывались на английском, полно и внятно. :)
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.10.2006 (Вт) 16:23

А как внятно назвать эту переменную? Просто я сам примерно так и называю.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 24.10.2006 (Вт) 16:38

GAGArin писал(а):А как внятно назвать эту переменную? Просто я сам примерно так и называю.

я так не называю, и иногда я здорово торможу из-за этого :(
незнаю, например, как назвать ту или иную переменную, лезу во всякие слвари ищу...а время то идет

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.10.2006 (Вт) 16:41

GAGArin писал(а):А как внятно назвать эту переменную? Просто я сам примерно так и называю.

Считается правильным добавлять префиксы, определяющие назначение и тип данных переменной.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.10.2006 (Вт) 16:49

оффтоп: один раз мне довелось читать код где были такие переменные (i, j, k, a,b,c,d,e,f,g, x,y,z).

Вот это было жутко :wink:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 24.10.2006 (Вт) 17:09

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

Да, и что за префиксы назначения? Пару примеров если не сложно.

Ramzes
Скромный человек
Скромный человек
Аватара пользователя
 
Сообщения: 5004
Зарегистрирован: 12.04.2003 (Сб) 11:59
Откуда: Из гробницы :)

Сообщение Ramzes » 24.10.2006 (Вт) 17:13

alibek писал(а):
GAGArin писал(а):А как внятно назвать эту переменную? Просто я сам примерно так и называю.

Считается правильным добавлять префиксы, определяющие назначение и тип данных переменной.

Эту тему мы уже обсуждали

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.10.2006 (Вт) 19:01

GAGArin писал(а):Да, и что за префиксы назначения? Пару примеров если не сложно.

srcData, extBuffer, dstHandle, inArgCount
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.10.2006 (Вт) 19:07

Гм... обычно в индексе указывают типа а не назначение :? (sName, iCounter, lValue, bEnabled, vMisc). Стиль Паскаля, насколько я помню, называется. (ошибся) Где то на RSDN была статья по этой теме.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 24.10.2006 (Вт) 19:47

Обычно да. Но и такую схему применяют.
Lasciate ogni speranza, voi ch'entrate.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 25.10.2006 (Ср) 7:57

Неважно какая система префиксов применяется, важно чтобы она была цельной системой
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Holy Wars@VBStreets

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 6

    TopList  
cron