Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стиль кодинга, сокращения для компонентов 
:(
    Опции темы
Rockie
Дата 7.9.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



Привет. Стандарты кодинга смотрел, сабж не нашел. Не подскажете ссылку на список используемых сокращений, используемых для компонентов .NET? Если такое вообще есть. То есть (к примеру) нечто вроде
button -  BTN
combobox - CMB
А то автоматически генерируемые названия функций вроде
 
Код

button1_Click(..)

выглядят как-то убого.




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Azzdorf
  Дата 9.3.2008, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



Цитата(Rockie @ 7.9.2007,  10:32)
выглядят как-то убого.

согласен сам использую типа Button->btn, но если чистый код переваливает через добрых 10000строк лучше что-бы все называлось своими именами, также и в рекомендациях по коддингу не рекомендуют сильно включать фантазию, посколько она есть минусом при работе в команде
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
Exception
Дата 10.3.2008, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Я называю контролы таким образом: семантическое значение + тип.
Примеры: usersGrid, acceptButton, userNameTextBox.
PM   Вверх
Azzdorf
  Дата 11.3.2008, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



интересная тема посмотреть как далают другие а вот например по архитерктере: я - самоучка, пишу чистым кодом, простые приложения, 2-5 форм, до 10 классов, компоненты обявляю примерно так:

Код

using System;
....
public class VReceipt : Form
{
...
// объявляю компоненты

    // controls: Panel
    public Panel pnlReceipt = new Panel();
    // controls: Button Left
    public Button btnLoadImage = new Button();
    public Button btnBandW = new Button();
    public Button btnBright = new Button();
    public Button btnPen = new Button();
    public Button btnSave = new Button();
    // controls: Button Right
    public Button btnUseMatrix = new Button();
    // controls: TextBox
    public TextBox txtBlevel = new TextBox();
    // controls: NumericUpDown
    public NumericUpDown udPen = new NumericUpDown();
    // controls: ChechBox
    public CheckBox chbUseMCHB = new CheckBox();
    // controls: 
    public TrackBar tbB = new TrackBar();
    public TrackBar tbC = new TrackBar();
 ...
// форма
    //*****GENERAL*****
    public VReceipt()
    {
        // parameters
...
        // methods
// как бы основной метод который прорисовывает все остальные контролы
        InitializeComponent();
    }
    // method: GENERAL
    private void InitializeComponent()
    {
// а вот и все остальные контролы
        MethodConstr_Panel();
        MethodConstr_Button();
        MethodConstr_TextBox();
        MethodConstr_NumericUpDown();
        MethodConstr_CheckBox();
        MethodConstr_TrackBar();
    }
    // method: Panel
    private void MethodConstr_Panel()
    {
        //receipt
        pnlReceipt.Location = new Point(150, 0);
        pnlReceipt.Size = new Size(this.Width-150, this.Height);
        pnlReceipt.BackColor = Color.LightBlue;
        pnlReceipt.MouseDown += new MouseEventHandler(pnlReceipt_MouseDown);
        pnlReceipt.MouseMove += new MouseEventHandler(pnlReceipt_MouseMove);
        pnlReceipt.MouseUp += new MouseEventHandler(pnlReceipt_MouseUp);
        pnlReceipt.Paint += new PaintEventHandler(pnlReceipt_Paint);
        this.Controls.Add(pnlReceipt);
    }
 ...
    // method: Button
    private void MethodConstr_Button()
    {
        btnLoadImage.Location = new Point(10,10);
        btnLoadImage.Size = new Size(pnlReceipt.Location.X-20, 25);
        btnLoadImage.FlatStyle = FlatStyle.Flat;
        btnLoadImage.Text = "Load Image";
        btnLoadImage.Click += new EventHandler(btnLoadImage_Click);
        this.Controls.Add(btnLoadImage);

        btnBandW.Location = new Point(10, btnLoadImage.Location.Y + btnLoadImage.Height + 10);
        btnBandW.Size = new Size(pnlReceipt.Location.X - 20, 25);
        btnBandW.FlatStyle = FlatStyle.Flat;
        btnBandW.Text = "Black and White";
        btnBandW.Click += new EventHandler(btnBandW_Click);
        this.Controls.Add(btnBandW);

        btnBright.Location = new Point(10, btnBandW.Location.Y + btnBandW.Height + 10);
        btnBright.Size = new Size(pnlReceipt.Location.X - 20, 25);
        btnBright.FlatStyle = FlatStyle.Flat;
        btnBright.Text = "Number of pixels";
        btnBright.Click += new EventHandler(btnBright_Click);
        this.Controls.Add(btnBright);

        btnPen.Location = new Point(10, btnBright.Location.Y + btnBright.Height + 40);
        btnPen.Size = new Size(50, 25);
        btnPen.FlatStyle = FlatStyle.Flat;
        btnPen.Text = "Pen";
        btnPen.Click += new EventHandler(btnPen_Click);
        this.Controls.Add(btnPen);

        btnSave.Location = new Point(10, btnPen.Location.Y + btnPen.Height + 10);
        btnSave.Size = new Size(pnlReceipt.Location.X - 20, 25);
        btnSave.FlatStyle = FlatStyle.Flat;
        btnSave.Text = "Save";
        btnSave.Click += new EventHandler(btnSave_Click);
        this.Controls.Add(btnSave);

        btnUseMatrix.Location = new Point(425, 400);
        btnUseMatrix.Size = new Size(100, 25);
        btnUseMatrix.FlatStyle = FlatStyle.Flat;
        btnUseMatrix.Text = "Use Matrix";
        btnUseMatrix.Click += new EventHandler(btnUseMatrix_Click);
        pnlReceipt.Controls.Add(btnUseMatrix);
    }


...
}


тойсь есть что-то типа генерального метода на форме, который вкл методы для отдельных компонентов и там уже все котнролы прописываются

может где-то здеся обшибка???
может можна попроще и правильнее??? smile 
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
Exception
Дата 11.3.2008, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Я вообще не понимаю, зачем ты этим занимаешься, если есть дизайнер и partial files.
PM   Вверх
ivashkanet
Дата 11.3.2008, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Для мелких контролов (кнопки, текстбоксы, лабелы) использую стиль Azzdorf.
Для более крупных гриды, панели, ... --- Exception.
Если лабел не изменяемый вообще можно для него не генерить член класса.

P.S. такие натоации использую только для контролов в UI. В других местах просто даю осмысленные названия.
PM MAIL WWW ICQ   Вверх
Azzdorf
  Дата 11.3.2008, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



Цитата(Exception @ 11.3.2008,  08:14)
Я вообще не понимаю, зачем ты этим занимаешься, если есть дизайнер и partial files.

...ну не знаю - умею как умею, также как ivashkanet  трогает смайл smile , меня трогает писать чистым кодом - притом я могу всегда его прочитать и знаю до мелочей возможности контролов и где можна применить стандартный, а где лучше написать свой, но скорее ответ прост - я по другому и  не пробывал, протим что программы, которые я пишу, боллее функциональны цем усыпаны контролами, а контролов 20-30 для одной проги я уж как-нибудь наберу ... smile 
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
Exception
Дата 11.3.2008, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Цитата(ivashkanet @  11.3.2008,  10:59 Найти цитируемый пост)
Для мелких контролов (кнопки, текстбоксы, лабелы) использую стиль Azzdorf.
Для более крупных гриды, панели, ... --- Exception.


mixed styles не есть гут.

Цитата(ivashkanet @  11.3.2008,  10:59 Найти цитируемый пост)
Если лабел не изменяемый вообще можно для него не генерить член класса.


А вот в этом целиком и полностью согласен smile .

Цитата(Azzdorf @  11.3.2008,  17:24 Найти цитируемый пост)
контролов 20-30 для одной проги я уж как-нибудь наберу .


В образовательных целях оно, конечно, полезно, но полный отказ от возможностей дизайнера, с моей точки зрения, выглядит достаточно глупой и бессмысленной затеей, ибо тратится время и силы на то, на чём мозг программиста вообще концентрироваться не должен.
PM   Вверх
ivashkanet
Дата 11.3.2008, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Exception @  11.3.2008,  16:27 Найти цитируемый пост)
mixed styles не есть гут.

Нууу.... использование префиксов кот показывают тип уже не есть гуд :( Это уже миксед стайл (если учитывать что код остальной части программы не использует никаких префиксов). В этом плане твой стиль больше подходит к общему стилю (осмысленные имена). Но с другой стороны, когда элементов сотни (UI) и у самой формы немерено свойств найти что-нить невозможно. Именно поэтому и использую префиксы (так как знаю что это кнопка, а вот как ее назвали подскажет Интелли Сайнс).
Я думал-думал об этом и решил забить. Форма -- это пример класса который очень тяжело поддается структурированию.

Цитата(Azzdorf @  11.3.2008,  15:24 Найти цитируемый пост)
меня трогает писать чистым кодом - притом я могу всегда его прочитать и знаю до мелочей возможности контролов...

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

Всегда нужно помнить:
1) Написать код понятный компьютеру может любой, а вот написать код понятный человеку намного сложнее!
2) Код чаще читают, чем пишут!

Добавлено через 1 минуту и 19 секунд
Еще вспомнил:
3) Всегда пишите код так, как будто человек который будет его пддерживать -- буйный маниак-психопат знающий твой адрес
PM MAIL WWW ICQ   Вверх
Хоббит
Дата 11.3.2008, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Пишем семантическое имя + тип. Не сокращайте на пару букв. Не снижайте читабельность и понятность кода, ради краткости и кажушейся красоты. И прочитайте к примеру Стива Макконела "Совершенный код".. там по этой теме много написано.
PM MAIL   Вверх
Exception
Дата 11.3.2008, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Цитата(ivashkanet @  11.3.2008,  18:48 Найти цитируемый пост)
Нууу.... использование префиксов кот показывают тип уже не есть гуд :( Это уже миксед стайл (если учитывать что код остальной части программы не использует никаких префиксов)


А я и не ратую за использование префиксов. Мы говорим об использовании суффиксов. Действительно, в концепцию именования variableName имя btnCancel никак не вписывается. Имя же cancelButton вписывается вполне, потому что вполне отражает суть: «cancel button» = «кнопка отмены». Использование типовых суффиксов делает имена всех элементов вполне осмысленными с точки зрения именования переменных вообще.


Цитата(ivashkanet @  11.3.2008,  18:48 Найти цитируемый пост)
Но с другой стороны, когда элементов сотни (UI) и у самой формы немерено свойств найти что-нить невозможно.


Вообще, я практикую и всем советую паттерн MVP. Он лёгок в реализации и охрененно useful, ибо добавляется ещё один уровень абстракции (и нам больше не придётся общаться с контролами напрямую). Если интересно, могу рассказать чуть подробнее о нём.


Цитата(ivashkanet @  11.3.2008,  18:48 Найти цитируемый пост)
3) Всегда пишите код так, как будто человек который будет его пддерживать -- буйный маниак-психопат знающий твой адрес 


Вмемориз, очень точно  smile .


Цитата(Хоббит @  11.3.2008,  21:12 Найти цитируемый пост)
Не снижайте читабельность и понятность кода, ради краткости и кажушейся красоты. И прочитайте к примеру Стива Макконела "Совершенный код".. там по этой теме много написано. 


+inf. Книжка must read для тех, кто не хочет писать быдлокод.
PM   Вверх
ivashkanet
Дата 11.3.2008, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Exception @  11.3.2008,  20:57 Найти цитируемый пост)
А я и не ратую за использование префиксов. Мы говорим об использовании суффиксов. Действительно, в концепцию именования variableName имя btnCancel никак не вписывается. Имя же cancelButton вписывается вполне, потому что вполне отражает суть: «cancel button» = «кнопка отмены». Использование типовых суффиксов делает имена всех элементов вполне осмысленными с точки зрения именования переменных вообще.

Я это же и написал, перечитай ;-)

Цитата(Хоббит @  11.3.2008,  19:12 Найти цитируемый пост)
 Стива Макконела "Совершенный код"

И я заплюсодиню

Цитата(Exception @  11.3.2008,  20:57 Найти цитируемый пост)
Вообще, я практикую и всем советую паттерн MVP

Какой бы паттерн ты ни использовал на самом низком уровне аббстракции придеться иметь дело с контролами, и если интерфейс насыщен, то в них очень сложно разобраться без мнемонических префиксов. 
Еще раз акцентирую: префиксы нужны только для того, чтобы легко достать контрол с помощью интеллисайнса!
PM MAIL WWW ICQ   Вверх
ivashkanet
Дата 12.3.2008, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



smile 
Цитата(Exception @  11.3.2008,  20:57 Найти цитируемый пост)
я практикую и всем советую паттерн MVP

Гы, полазил по инету, почитал про этот паттерн (наиболее короткое и полное объяснение на русском)... И понял, что я его реализовал в своей программе  smile Не зная о MVP (только о MVC).

Добавлено через 1 минуту и 58 секунд
Цитата(ivashkanet @  11.3.2008,  21:07 Найти цитируемый пост)
Еще раз акцентирую: префиксы нужны только для того, чтобы легко достать контрол с помощью интеллисайнса! 

Сегодня утром, когда чистил зубы  smile , пришла в голову мысль, что если это единственный плюс, то почему бы не именовать контролы с подчеркивания? 
1) Это ведь приватные члены класса.
2) Найти их будет легко.
 smile 

Буду думать  smile 
PM MAIL WWW ICQ   Вверх
Rockie
Дата 12.3.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: нет
Всего: 31



Цитата(Exception @  11.3.2008,  21:57 Найти цитируемый пост)
Он лёгок в реализации и охрененно useful, ибо добавляется ещё один уровень абстракции (и нам больше не придётся общаться с контролами напрямую). Если интересно, могу рассказать чуть подробнее о нём.

интересно. можно пару ссылочек на него?
ivashkanet, интересно, спасибо.


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
ivashkanet
Дата 12.3.2008, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Rockie, RSDN:Model - View -Controller в .Net в ней рассказывается и про презентер.
А вообще гугл на запрос Model View Presenter выдает очень много инфы

PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0593 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.