| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Стиль кодинга, сокращения для компонентов |
| Автор: Rockie 7.9.2007, 10:32 | ||
| Привет. http://forum.vingrad.ru/forum/topic-55987/15.html#st_0_view_0 смотрел, сабж не нашел. Не подскажете ссылку на список используемых сокращений, используемых для компонентов .NET? Если такое вообще есть. То есть (к примеру) нечто вроде button - BTN combobox - CMB А то автоматически генерируемые названия функций вроде
выглядят как-то убого. |
| Автор: Azzdorf 9.3.2008, 18:03 | ||
согласен сам использую типа Button->btn, но если чистый код переваливает через добрых 10000строк лучше что-бы все называлось своими именами, также и в рекомендациях по коддингу не рекомендуют сильно включать фантазию, посколько она есть минусом при работе в команде |
| Автор: Exception 10.3.2008, 19:26 |
| Я называю контролы таким образом: семантическое значение + тип. Примеры: usersGrid, acceptButton, userNameTextBox. |
| Автор: Azzdorf 11.3.2008, 01:46 | ||
интересная тема посмотреть как далают другие а вот например по архитерктере: я - самоучка, пишу чистым кодом, простые приложения, 2-5 форм, до 10 классов, компоненты обявляю примерно так:
тойсь есть что-то типа генерального метода на форме, который вкл методы для отдельных компонентов и там уже все котнролы прописываются может где-то здеся обшибка??? может можна попроще и правильнее??? |
| Автор: Exception 11.3.2008, 08:14 |
| Я вообще не понимаю, зачем ты этим занимаешься, если есть дизайнер и partial files. |
| Автор: ivashkanet 11.3.2008, 09:59 |
| Для мелких контролов (кнопки, текстбоксы, лабелы) использую стиль Azzdorf. Для более крупных гриды, панели, ... --- Exception. Если лабел не изменяемый вообще можно для него не генерить член класса. P.S. такие натоации использую только для контролов в UI. В других местах просто даю осмысленные названия. |
| Автор: Azzdorf 11.3.2008, 16:24 | ||
...ну не знаю - умею как умею, также как ivashkanet трогает смайл |
| Автор: ivashkanet 11.3.2008, 17:48 | ||
Нууу.... использование префиксов кот показывают тип уже не есть гуд :( Это уже миксед стайл (если учитывать что код остальной части программы не использует никаких префиксов). В этом плане твой стиль больше подходит к общему стилю (осмысленные имена). Но с другой стороны, когда элементов сотни (UI) и у самой формы немерено свойств найти что-нить невозможно. Именно поэтому и использую префиксы (так как знаю что это кнопка, а вот как ее назвали подскажет Интелли Сайнс). Я думал-думал об этом и решил забить. Форма -- это пример класса который очень тяжело поддается структурированию.
Azzdorf, эт хорошо, что ты можешь... Судя по всему ты работаешь один и не задумываешься, что после тебя этот код может понадобиться изменять кому-то еще (а тебя рядом не будт) и он просто возьмется за голову от такого кода. Всегда нужно помнить: 1) Написать код понятный компьютеру может любой, а вот написать код понятный человеку намного сложнее! 2) Код чаще читают, чем пишут! Добавлено через 1 минуту и 19 секунд Еще вспомнил: 3) Всегда пишите код так, как будто человек который будет его пддерживать -- буйный маниак-психопат знающий твой адрес |
| Автор: Хоббит 11.3.2008, 20:12 |
| Пишем семантическое имя + тип. Не сокращайте на пару букв. Не снижайте читабельность и понятность кода, ради краткости и кажушейся красоты. И прочитайте к примеру Стива Макконела "Совершенный код".. там по этой теме много написано. |
| Автор: Exception 11.3.2008, 21:57 | ||||||||
А я и не ратую за использование префиксов. Мы говорим об использовании суффиксов. Действительно, в концепцию именования variableName имя btnCancel никак не вписывается. Имя же cancelButton вписывается вполне, потому что вполне отражает суть: «cancel button» = «кнопка отмены». Использование типовых суффиксов делает имена всех элементов вполне осмысленными с точки зрения именования переменных вообще.
Вообще, я практикую и всем советую паттерн MVP. Он лёгок в реализации и охрененно useful, ибо добавляется ещё один уровень абстракции (и нам больше не придётся общаться с контролами напрямую). Если интересно, могу рассказать чуть подробнее о нём.
Вмемориз, очень точно
+inf. Книжка must read для тех, кто не хочет писать быдлокод. |
| Автор: ivashkanet 11.3.2008, 22:07 | ||
Я это же и написал, перечитай ;-) И я заплюсодиню Какой бы паттерн ты ни использовал на самом низком уровне аббстракции придеться иметь дело с контролами, и если интерфейс насыщен, то в них очень сложно разобраться без мнемонических префиксов. Еще раз акцентирую: префиксы нужны только для того, чтобы легко достать контрол с помощью интеллисайнса! |
| Автор: ivashkanet 12.3.2008, 09:37 | ||
Гы, полазил по инету, почитал про этот паттерн (http://blog.veles.info/2008/02/28/model-view-presenter-mvp-pattern/)... И понял, что я его реализовал в своей программе Добавлено через 1 минуту и 58 секунд
Сегодня утром, когда чистил зубы 1) Это ведь приватные члены класса. 2) Найти их будет легко. Буду думать |
| Автор: Rockie 12.3.2008, 11:28 | ||
интересно. можно пару ссылочек на него? ivashkanet, интересно, спасибо. |
| Автор: ivashkanet 12.3.2008, 11:37 |
| Rockie, http://rsdn.ru/article/patterns/ModelViewPresenter.xml в ней рассказывается и про презентер. А вообще гугл на запрос Model View Presenter выдает очень много инфы |
| Автор: tol05 12.3.2008, 12:36 |
| нашел http://msdn2.microsoft.com/en-us/library/xzf533w0(VS.71).aspx http://msdn2.microsoft.com/en-us/library/ms229002.aspx http://www.akadia.com/services/naming_conventions.html от себя скажу, что чаще всего сталкивался именно с префиксами, а не с суффиксами. Т.е не acceptButton (или acceptBtn), а btnAccept. Потому как первичной информацией является имя контрола, а вторичной - его тип. |
| Автор: Exception 12.3.2008, 12:55 | ||
А мне кажется наоборот. Первичная -- что делает контрол, вторичная -- как (и чем он является). Пример: нужно добавить в таблицу пользователей запись. Я пишу users... и у меня выскакивает usersGrid. Пример упрощённый, но когда у тебя используется до хрена контролов, и в том числе половина своих, не всегда так легко вспомнить тип конкретного, в то время, как его назначение ты помнишь изначально (раз ты его ищешь, значит, зачем-то). Про MVP я упомянул к тому, что он позволяет снизить до минимума обращения к контролам напрямую (а значит, и количество ситуаций, когда его нужно искать). Да и вообще это очень рульный паттерн. |