четверг, 9 сентября 2010 г.

Говнокод

Как обычно, работы много, пальцев мало, а мозгов и того меньше. Примерно один на десять рабочих пальцев.
Чтобы попасть к нам на работу, нужно совсем не много. Сделать простенькое приложение, и пройти собеседование. Это все я проходил, за собеседованиями тоже наблюдал. Но сегодня мне посчастливилось увидеть тестовую аппликуху одного из кандидатов.
Когда я ее делал – получилось большое количество классов, пачка паттернов и применение различных технологий. Я ее писал неделю по паре часов в день, сделал 3-4 версии, точно уже не помню. А здесь…
А здесь был только 1 класс. В классе был только 1 метод main. Задача состояла в реализации шайтан-машины. Ладно, посмотрим:
Мне есть с чем сравнивать, и всю эпичность картины обрисовывает длиннющая пачка из трех импортов:

import java.io.*;
import java.lang.*;
import java.math.*;


ничего не напоминает? Универ, да, лабораторные, которые взяли из общаги и сдали, даже не смотря в код.

Теперь вдруг захотелось инициализировать переменные. О ужас, это что где как?! Я не понимаю.

String ASK; int p=0;
int pm=0;
String[] CURR=new String[37];
int[] VAL=new int[37];
int[] NUM=new int[37];

и вся эта фигня выполняется в цикле. Точнее в циклах:

do
{
do
{


Я насчитал 12 уровней вложенности, не считая несколько вложенных циклов и if’ов в одном.

Вот пример одного из условий цикла:

while (!(ASK.equals("get")) && !(ASK.equals("put")));

а вот пример условия if’а:

if ((value==10||value==100||value==1000||value==1||
value==5||value==50||value==500||value==5000||
value==2||value==3||value==20||value==25)&&(number>0))


Пример невъебической херни. Я даже разбираться не стал что есть что, потому что это – говно с большой буквы П.

for (int j=4; j<=n; j++)

{

value-=ltemp;

if (value<=0)

{

//ничего не делаем

}

else

{

int m = (n<=7)? n : 8;

Double znam=new Double(Math.pow(10,Math.abs(m-j-1)));

int iznam=znam.intValue();

int t=1;

if (value/iznam==5 && value!=5)

{

t=5;

}

int number=value/(t*iznam);

if (number != 0)

{

System.out.println(t*iznam+" "+number);

}

int i;

for(i=0; i<=pm; i++)

{

if (currency.equals(CURR[i]) && t*iznam==VAL[i] && number<=NUM[i])

{

NUM[i]-=number;

break;

}

}

if(i

{

q++;

}

else

{

}

ltemp=t*iznam*number;

}

}

if (q

}

}

}

while(g!=1);

for (int i=0; i<=pm-1; i++)

{

System.out.println(CURR[i]+" "+VAL[i]+" "+NUM[i]);

}

System.out.println("OK");

}

}

while(!(ASK.equals("quit")));

}

И еще гора такого же кода.

Большая просьба, если не уважаете себя, то уважайте других. Не приходите вот с таким отношением к работе даже в самую захудалую web-студию. Поверьте, это не ваше занятие, поищите себя в другом.

Комментариев нет: