elseiver: (ah NEW!)
[personal profile] elseiver
В теплой южноамериканской стране еще кого-то взяли на работу. Чтобы заранее не разочаровываться, полом нового сотрудника я не интересовался.
А вот образцы кода мне прислали... Как водится, шедевры начинаются с аутентификации пользователя:)


Ну, во-первых всё писано на VB.net. Мне-то что, я не сильно против, но как-то странно...

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
usu.dealer = Txtdealear.Text
usu.Password = TxtPass.Text
usu.usuario = Me.Txtuser.Text
usu.passDealer = Txtdealear.Text
If Not usu.UserLogin() Then
Txtdealear.Text = ""
TxtPass.Text = ""
Txtuser.Text = ""
MsgBox("Mmmmmm")
Exit Sub
End If
MsgBox("OK")
End Sub


Глубокомысленное "Мммммммм" производит впечатление, согласитесь:) Сразу видна работа мысли.
Закроем глаза на Button1, посмотрим какую функцию вызываем:

Function UserLogin() As Boolean
Dim a As SqlDataReader = Nothing
create(a, "select A.id from Access as A inner join Dealers D on A.iddealer=D.id where usu='" & usuario & "' and A.pass='" & password & "' and D.pass='" & passDealer & "'")
If Not a.HasRows Then
cone.Close()
Return False
Else
cone.Close()
Return True
End If
End Function


Про то, что бывает такая штука как SQL Injection разработчик не догадывается. Наивный...
Выбор имени для функции работы с базой данных - create - кажется странным. Посомтрим на саму функцию:

Public Shared Function create(ByVal sel As String) As Boolean
If cone.State = ConnectionState.Closed Or cone.State = ConnectionState.Broken Then
Try
Connect()
Catch ex As Exception
Exit Function
End Try
End If
Dim Da As New SqlCommand
Try
Da.CommandText = sel
Da.Connection = cone
Da.ExecuteNonQuery()
Catch ex As Exception
Throw New Exception("Error sending command to DB")
End Try
Return True
End Function

Загадочная функция Connect, упомянутая выше выглядит так:

Public Shared Function Connect(Optional ByVal path As String = "") As Boolean
If path = "" Then
cone.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\A.mdf;Integrated Security=True;User Instance=True"
Else
cone.ConnectionString = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & path & "\A.mdf;Integrated Security=True;User Instance=True"
End If
Try
cone.Open()
Catch ex As Exception
Throw New Exception("Error to Connect")
End Try
Return True
End Function


Сущестование конфигурационных файлов и всех связанных с ними неймспейсов для разработчика, похоже, тайна...
Про безобразную обработку исключений - молчу...

Глядя на всё это становится немного не по себе. Такой код может написать только что пришедший на работу студент, и это будет нормально - многого не умеет, со многими проблемами не сталкивался еще. Бывает, в общем. Не большая проблема - научить. Но вот что делать, если этот самый студент находится на другом континенте, владеет плохоньким английским (судя по тексту исключений), и работает в те часы, когда я, например, люблю спать?
Ведь там, тупо, просто никого нет, чтобы его научить...

Ситуацию усугубляет то, что проект человеку дали реальный. Более того, ему дали проект, для которого я писал эстимейт в расчете на более-менее нормальные российсикие программистские кадры.


Но вот это "usuario" смотрится довольно мило, согласитесь:)

UPD: Mamma mia! Оказывается, код проекта писали коллективно ТРИ человека там, в Буэнос-Айресе. То есть они могли видеть код друг друга, советоваться... И всё равно написали то, что написали. И ушла у них на всё это неделя. 120 человеко-часов. При том, что разумно оценивая объём, я бы написал лучше, и за два дня.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

November 2016

S M T W T F S
  12345
67 89101112
13 141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 3rd, 2026 07:00 pm
Powered by Dreamwidth Studios