Страница: 1 | 2 | 3 | 4 |
Вопрос: Работа со временем
Добавлено: 24.07.08 23:19
Автор вопроса: jackoff
Ответы
Всего ответов: 50
Номер ответа: 16
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #16
Добавлено: 26.07.08 01:08
Паша, если бы ты делал "по стандарту", то у тебя в коде не было бы тупизмов типа p_Value и тому подобных. Иди почитай какие стандарты именования переменных используются в .NET
Что касается стандартов - спецификация VB .NET 9.0 предусматривает возможными оба способа объявления, как с явным указанием типа переменных, так и с неявным (в случае когда компилятор может его определить исходя из того, каким значением инициализируется переменная).
Поясняю:
Допустимо (при включенной опции Option Infer On - по умолчанию включена):
Dim MyList = New List(Of String)
For i = 0 to 100
Next
Using S = New SqlConnection("..."
End Using
Вот в этом случае возможна только неявная типизация
Нельзя (ошибка компиляции при включенной опции Option Strict On - по умолчанию отключена):
Паша, будешь спорить?
Номер ответа: 17
Автор ответа:
__Pavel__
Вопросов: 29
Ответов: 284
Web-сайт:
Профиль | | #17
Добавлено: 26.07.08 03:16
ссылочку можно? хотя мне и так удобно... да и вобще это дело вкуса... кто как хочет так и сокращает... юзеру по***
а я разве спорил? у вас помоему мания того что все против вас
1)
2)
Все ЭТА тема ЗАКРЫТА!
Номер ответа: 18
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #18
Добавлено: 26.07.08 08:06
ООООО, вижу назревает межнациональный конфликт
И чем же этот код некорретен? Чем напрягает? Поделитесь уж своими соображениями.
Когда это твой собственный код на десяток строк - это фигня.. Но когда читаешь чужой код в таком виде - вот это напрягает! Мало того, что надо вникнуть в суть чужого кода, понять смысл выполняемых им действий, так еще надо постоянно держать в голове что это за переменная и какого она типа! Другими словами читабельность подобного кода - нулевая. Чтобы понять что за тип у переменной надо анализировать ее значение... ужоснах!!
А в таком варианте например
Номер ответа: 19
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #19
Добавлено: 26.07.08 10:44
возвращает она
Достаточно лишь навести курсор мыши на имя переменной.
Номер ответа: 20
Автор ответа:
gvozd
Разработчик Offline Client
Вопросов: 164
Ответов: 1317
Web-сайт:
Профиль | | #20
Добавлено: 26.07.08 10:59
Steel Brand, дай, пожалуйста, спецификацию по оформлению кода, очень интересно почитать.
Номер ответа: 21
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #21
Добавлено: 26.07.08 11:33
И это, по твоему, нормально? Я, когда пишу код, мышкой вообще не пользуюсь.. и что, мне теперь, наводить на каждую переменную мышку??? Увольте...
Номер ответа: 22
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #22
Добавлено: 26.07.08 11:54
Странно.. Я активно мышой пользуюсь.
А команды рефакторинга тоже с клавы вызываешь?
По теме: согласен, что отсутствие типа при объявлении делает код менее читабельным.
Номер ответа: 23
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #23
Добавлено: 26.07.08 18:47
Да, конечно, все для тебя Радует что человек стремится к знаниям
http://vbnet.ru/articles/showarticle.aspx?id=116
Тут речь идет не об удобстве.
Мне удобно, например, читать гигабайтовые файлы через System.IO.ReadAllBytes (), но это не значит что так нужно делать.
Если бы так было - кто как хочет, так и сокращает, то у нас бы не было ни одной работающей программы.
Вот тебе пример процедуры, я использовал ту нотацию которую мне удобнее.
Dim a = S.Request.Headers("Authorization"
If String.IsNullOrEmpty Then Return False
a = a.Trim
If Not a.ToLower.StartsWith("basic " Then Return False
Dim B = Convert.FromBase64String(a.Substring(6))
Dim C = S.Request.ContentEncoding.GetString(B)
Dim d = C.Split(New Char() {":"c}, 2)
If d.Count < 2 Then Return False
Dim e = d(0)
Dim f = d(1)
Dim g = Engine.Users(e)
If g Is Nothing OrElse g.Locked Then Return False
Dim i = Cryptography.ComputeHashToBase64String(e.ToLower + f, Cryptography.HashAlgorithmEnum.SHA512)
If i <> g.Password Then
Return False
End If
S.Context.User = New GenericPrincipal(New GenericIdentity(g.Name), g.Roles)
Return True
End Function
Заметь - названия переменные которкие, следовательно:
1) Проще и быстрее набирать
2) Прозще запомнить.
Юзеру совсем не по***, если из-за использования неверной нотации один разработчик не понял что имел в виду другой и сделал продукт с багом
Паша, по-моему это не тебе решать
Номер ответа: 24
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #24
Добавлено: 26.07.08 19:05
EROS, 10 строк кода - консольное приложение для проверки того как работате тот или иной класс, и там я использую обычные переменные A B C D и т.п.
Чем напрягает?
Гораздо больше напрягает когда указаны типы но при этом не ясно что делает код, а в этом случае как раз все отлично ясно
А типа когда тип задан явно этого делать не надо?
Прокрутил немного вниз, уже не видно декларацию переменной, и что делать? Крутить обратно вверх чтоб смотреть?
По-моему гораздо проще навести мышкой и посмотреть, как посоветовал Павел (не путать с __Pavel__!!!)
Другое дело - зачем вообще что-то смотреть?
Вот переменные:
CurrentUserID
DateCreated
HitsCount
AllowedUsersList
ActiveSite
Я не знаю в каком коде они объявлены, но могу предположить что:
Dim DateCreated As DateTime
Dim HitsCount As Integer
Dim AllowedUsersList As List(Of User)
Dim ActiveSite As Site
Да отличная читабельность
Я в таком стиле написал уже тысяч 50 строк кода, полет нормальный
Dim myVar = getMyFunk(param)
Надо будет добраться до этой функции и посмотреть какой тип возвращает она! А это все лишнее время и телодвижения.. Вообщем я для себя уже давно сделал вывод - ф топку подобный способ объявления! Себе же потом дороже будет..
getMyFunk - понятно что нужно будет наводить мышкой И кстати не getMyFunk а GetMyFunk
А если у функции нормальное имя то как правило и так понятно какой тип она возвращает
Номер ответа: 25
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #25
Добавлено: 26.07.08 19:07
Кстати, неявная типизация работает только для локальных переменных.
То есть ее нельзя использовать для возвращаемого типа функции (объявить Function Hello ()), для свойств, для полей, констант и т.п. Что есть как раз очень правильно, потому что в этом случае нужен явный контроль за тем, какой тип будет иметь переменная, для локальных переменных это не требуется потому что их облатсь ограничена и назначение и так понятно
Номер ответа: 26
Автор ответа:
__Pavel__
Вопросов: 29
Ответов: 284
Web-сайт:
Профиль | | #26
Добавлено: 26.07.08 19:40
да не мне... а здравому рассудку
эта тема ни как не относится к теме автора...
Номер ответа: 27
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #27
Добавлено: 26.07.08 19:49
Это вы в Basic названия с большой буквы пишете) А мне на работе приходится по 8 часов на java писать а там принято для геттеров и сеттеров названия начинать с маленькой буквы (Java Code Convention) ) Так что я уж пишу так, как на работе привык.. иначе в голове каша будет. Однажды мне надо было поправить свой старенький код на VB, так я умудрился в конце строки ";" поставить.. А потом долго и нудно втыкал почему у меня код не компилится.. Собственно из за java и бросил VB и перешел на C# чтоб меньше путаться.
Номер ответа: 28
Автор ответа:
__Pavel__
Вопросов: 29
Ответов: 284
Web-сайт:
Профиль | | #28
Добавлено: 26.07.08 19:52
хм... а разве студия не показывает ошибки???
Номер ответа: 29
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #29
Добавлено: 26.07.08 19:52
Я стараюсь обходится без мыши по возможности.. гораздо быстрее с клавы получается. Я даже горячие клавищи в VS и Eclipse настроил одинаково чтоб заморочек меньше было.
Номер ответа: 30
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #30
Добавлено: 26.07.08 19:54
Показывает.. Но когда ты постоянно используешь сишный синтаксис, то ; в конце строки явление самособой разумеющеся, и на глаз не воспринимается как ошибка.