Показать сообщение отдельно
  #13  
Старый 03.08.2012, 18:16
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
По умолчанию

Это выглядит конечно хорошо и кратко.

Но, за любой программой, не важно на чем написанной, стоит алгоритм.

В этом случае получаем на руби:

1. Скрытое "магические" преобразование

A .- N -.

в

таблицу

T1=('A','B',
T2=('.-',

2. Поиск в Т1 А и замена на значение в Т2.


Минусы:

Слабые моменты "скрыты" за функциями.

1. Ненужное преобразование. И как оно там преобразовывает - тоже вопрос. Оно может быть реализовано "на все случаи жизни" и соответстенно быть ну ооочень не оптимальным.
Делит по пробелам? - А вот мне нужен пробел. Как быть? Дописывать исключения?

2. Поиск А в таблице. Насколько он оптимально реализован неизвестно.
И он похож на функцию сродни
PHP код:
sort(); 
Что в неё "впихнули" - вопрос.

Я за то чтобы создавались новые библиотеки подпрограмм, для узких задач.
Например, работаешь с графикой - выбрал соответствующую библиотеку.

А вот когда заменяют:

PHP код:
for i:=1 to n do 
PHP код:
for i:=1 to n do
if 
j>1 then .... 
PHP код:
for i:=1 to n do
if 
j>1 then 
if g=k then 
на
PHP код:
Перебор1(k,n,x
PHP код:
ПереборСУсловием(k,n,j,x
PHP код:
ПереборСДвумяУсловиями(k,n,j,g,x

А дальше что?
На каждое простое действие разрабатывать процедуры/функции?

И что мы получим?

Проггер будет знать
PHP код:
ПереборСУсловием() 
Но когда ему нужно будет написать:
PHP код:
for k:=1 to n do
for 
i:=1 to n do
if 
j>1 then 
if g=k then
for l:=1 to n do
if 
g=k then 
Он вынужден нагородить:
PHP код:
Перебор1(k,n,ПереборСДвумяУсловиями(k,n,j,g,ПереборСУсловием(k,n,j,x))) 
и вместо знания
PHP код:
for to
if then 
нужно будет знать все тонкости
PHP код:
Перебор1(
ПереборСУсловием(
ПереборСДвумяУсловиями(
ПереборСТремяУсловиями
и т.д.

Это оправдано если вы используете специфические функции библиотеки,
но когда это нужно чтобы написать for to - это уже беда.


Далее:
визуальное восприятие затруднено

Программа читается как и книга, по строчкам
И желательно чтобы в строчке были быстро понятные действия
Например, читаем
PHP код:
for k:=1 to n do ' для к=1 до н '
for i:=1 to n do  ' тоже самое для и '
if j>1 then  ' если джи больше 1  ' 
А теперь читаем:
PHP код:
Перебор1(k,n,k,n,j,g,ПереборСУсловием(k,n,j,x))) 
' Перебор для к=1 до н для .... и тут целый том "Войны и мира"' 
При этом не забыть на каком месте в скобках что находится....
Особенно в функциях вида
PHP код:
суперфункция(a,b,e,r,t,i,j,d


П.с.:
а потом окажеться что если на вход супер функции подать текстовую переменню с некими спецсимволами - получаем SQL-injection.
И вот вместо выдачи кода морзе прога отправит пароли пользователя в сеть, а разрабочики будут чесать затылок " а как так могло получиться???"
__________________
Помогаю платно.
Помогаю иногда бесплатно.
Ответить с цитированием