@Nulltiton

Какой из вариантов ближе по написанию к коммерческому коду?

Хотелось бы узнать мнение программистов, работающих с коммерческими, а не учебными проектами. В приложенных двух проектах представлено два вида кода. Первый код - самый простой способ воспроизвести нужные действия, второй написан после прочтения книги "Чистый код", по сложившемся представлениям. Прошу:
  1. Определить какой из вариантов является наиболее подходящим для коммерческого проекта, с условием его расширения в будущем
  2. Дать советы по исправлению варианта, который наиболее подходит для не учебного проекта (полагаю, их должно быть немало)

Заранее благодарю за Ваши советы.
Код, написанный наскоро:
Форма 1:
public partial class Form1 : Form
{
  static public int Id;
  static public string Name;
  static public string Login;
  static public string Password;
  ...
  private void button1_Click(object
  sender, EventArgs e)
  {
    Id = dataGridView1.CurrentRow.Cells[0].
    Value.ToString();
  }
}

Форма 2, обращение к данным из формы 1:
public partial class Form2 : Form
{
  private void Form2_Load(object sender,
  EventArgs e)
  {
    textBox1.Text = Form1.Id;
  }

  private void button1_Click(object sender,
  EventArgs e)
  {
    Form1.Id = textBox1.Text;
  }
}

Класс User:
public class User
{
  ...
  
  static public bool Add(int Id, string 
  Name, string Login, string Password)
  {
    // Добавление в БД
  }
}

Код, по представлениям из книги:
Класс User
public class User
{
  static public int Id;
  static public string Name;
  static public string Login;
  static public string Password;
}

  static public bool Add(User user)
  {
    // Добавление в БД
  }

Форма 1:
public partial class Form1 : Form
{
  static public User user = new User();
 ...
  private void button1_Click(object
  sender, EventArgs e)
  {
    user.Id = dataGridView1.CurrentRow.
    Cells[1].Value.ToString();  
}


Форма 2, обращение к данным из формы 1:
public partial class Form2 : Form
{
  private void Form2_Load(object sender,
  EventArgs e)
  {
    textBox1.Text = Form1.user.Id;
  }

  private void button1_Click(object sender,
  EventArgs e)
  {
    Form1.user.Id = textBox1.Text;
  }
}


P.S. Очень смущает, что "правильная" по моим представлениям версия из книги содержат больше кода. Чем больше будет разрастаться приложение, тем больше его будет становиться. Действительно ли так происходит в реальный проектах, либо, что наиболее вероятно, я не правильно понимаю, как это должно быть реализовано?
  • Вопрос задан
  • 156 просмотров
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos
Ой, блин, вопрос холиварный шо писец. Что такое коммерческий код? Это как?

Смотрите. Если рассуждать с т.з. красивости кода - то статики ужас кошмар и уволить.
Но. Допустим стояла задача от бизнеса "сделать быстро, поддерживать не будем, модуль редкий" (дааа, конечно редко такие прогнозы сбываются, но допустим) - и такая архитектура со статиками (или какая другая) позволяет решить бизнес задачу со всеми вводным - значит это ВНЕЗАПНО коммерческий код.

В общем чтобы сказать коммерческий ли код - нужно знать какие требования к нему предьявлены.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы