Сообщество программистов Autodesk в СНГ

Разное => Разное => Тема начата: Андрей1986 от 09-08-2017, 17:51:45

Название: Разработка приложения на Lisp
Отправлено: Андрей1986 от 09-08-2017, 17:51:45
Народ, сколько может стоить работа программиста для разработки приложения на 50-100 строк?
Название: Re: Разработка приложения на Lisp
Отправлено: Алексей Кулик от 09-08-2017, 20:05:51
Андрей1986, ты не поверишь - но любую программу на lisp можно записать в одну строчку. И это не будет криминалом.
Точно так же любую программу можно заформатировать так, что там будет 100500 строк.

Задачу освети - а там уже и можно будет думать. Или не думать ;)
Название: Re: Разработка приложения на Lisp
Отправлено: Андрей1986 от 09-08-2017, 21:44:26
Алексей, ну понимаю я такое бы написал.
Но чтобы рыцари такое писали. ;).
А как же принципы хорошего кода: "Все, что можно отделить и назвать — должно быть отделено и названо."
Название: Re: Разработка приложения на Lisp
Отправлено: Алексей Кулик от 09-08-2017, 21:54:33
Для иллюстрации, код взят из http://www.theswamp.org/index.php?topic=26953.msg324794#msg324794
Два варианта форматирования:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun rjp-outlookmessage (to subject attachmentlist body send / objmail objol)
  2.   (if (and (setq objol (vlax-get-or-create-object "Outlook.Application"))
  3.            (setq objmail (vlax-invoke-method objol 'createitem 0))
  4.            ) ;_ end of and
  5.     (progn (vlax-put objmail 'to to)
  6.            (vlax-put objmail 'subject subject)
  7.            (vlax-put objmail 'body body)
  8.            (foreach file attachmentlist
  9.              (vl-catch-all-apply 'vlax-invoke (list (vlax-get objmail 'attachments) 'add file))
  10.              ) ;_ end of foreach
  11.            (if send
  12.              (vlax-invoke objmail 'send)
  13.              (vlax-invoke objmail 'display :vlax-true)
  14.              ) ;_ end of if
  15.            (vlax-release-object objol)
  16.            (vlax-release-object objmail)
  17.            ) ;_ end of progn
  18.     ) ;_ end of if
  19.   (princ)
  20.   ) ;_ end of defun
20 строк.
Теперь часть 2:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun rjp-outlookmessage (to subject attachmentlist body send / objmail objol) (if (and (setq objol (vlax-get-or-create-object "Outlook.Application")) (setq objmail (vlax-invoke-method objol 'createitem 0))) (progn (vlax-put objmail 'to to) (vlax-put objmail 'subject subject) (vlax-put objmail 'body body) (foreach file attachmentlist (vl-catch-all-apply 'vlax-invoke (list (vlax-get objmail 'attachments) 'add file))) (if send (vlax-invoke objmail 'send) (vlax-invoke objmail 'display :vlax-true)) (vlax-release-object objol) (vlax-release-object objmail))) (princ))
1 строка. А код одинаковый - просто форматирование разное. Работать должны оба :)
Название: Re: Разработка приложения на Lisp
Отправлено: Алексей Кулик от 09-08-2017, 21:55:18
Поэтому при разработке в lisp говорить о количестве строк по меньшей мере странно.
Название: Re: Разработка приложения на Lisp
Отправлено: Александр Ривилис от 09-08-2017, 23:10:11
Народ, сколько может стоить работа программиста для разработки приложения на 50-100 строк?
Работа программиста может оцениваться не в количестве строк кода, а в часах/днях/месяцах работы над программой. Ну и стоимостью часа/дня/месяца работы конкретного программиста.
Название: Re: Разработка приложения на Lisp
Отправлено: Дмитрий Загорулькин от 10-08-2017, 11:30:56
Присоединяюсь. Никогда не оценивал стоимость разработки количеством кода.
На стоимость, на мой взгляд, больше всего влияют следующие факторы:
1. Трудозатраты. Например, если требуется инсталлятор для приложения, какая-то примитивная защита от несанкционированного использования - это доп.работа. Сюда же можно включить работу по реализации какого-то продвинутого функционала. Для LISP это, например - работа с событиями, с расширенными данными и словарями, диалогами. Для .NET, например, если используется работа с несколькими документами, с неактивными документами, с Overrule, работа с событиями и т.п. Это сильно повышает требование к навыкам программиста. Следовательно, это будет дороже.
2. Полезность. Например. Если приложение позволит экономить 1 день рабочего времени в месяц одному инженеру и будет использоваться в организации с 10 инженерами с зарплатой 50 т.р. (условно), то  по грубым подсчетам, приложение в месяц позволит сэкономить организации около 20-25 т.р. Сколько можно взять за приложение, в таком случае? Наверное, 1 т.р. - будет слишком щедро.
Название: Re: Разработка приложения на Lisp
Отправлено: Алексей Кулик от 10-08-2017, 11:47:07
А если считать на год? :) Тогда расклады уже немного другие становятся ;)
Название: Re: Разработка приложения на Lisp
Отправлено: Дмитрий Загорулькин от 10-08-2017, 11:59:38
Это же как пример. :)
Можно и на год считать. Можно и как-то по-другому оценивать полезность, не в оплате труда инженеров. Тут же, помимо повышения их производительности труда, еще повышается их удовлетворенность работой. Одно дело - выполнять какие-то муторные однообразные рутинные операции, и совсем другое - когда за тебя это делает приложение. Меньше вероятность возникновения ошибки - качество изделия (чертежа) повышается. Экспертиза будет проходить быстрее. Заказчик доволен и заключает новый контракт на энное кол-во миллионов рублей  8)
Название: Re: Разработка приложения на Lisp
Отправлено: Алексей Кулик от 10-08-2017, 12:01:18
Off-Topic: показать
И за такие плюшки отдать всего 1 килорубль - жмотство :)