- 1
<div class="стиль38" style="position:relative; background:#333333; height:10px;"></div>
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+105
<div class="стиль38" style="position:relative; background:#333333; height:10px;"></div>
Работа фрилансЁра. И потом удивляются, что я их не люблю.
−4
static Singleton * g_pInstance = NULL;
Singleton* Singleton::sharedInstance()
{
if (g_pInstance)
return g_pInstance;
else {
g_pInstance = new Singleton();
if (g_pInstance->init()) {
return g_pInstance;
} else {
delete g_pInstance;
g_pInstance = NULL;
}
return g_pInstance;
}
}
Ещё из жизни синглтонов. Даёшь больше return'ов!
+16
// in .h file
class Singleton
{
public:
Singleton();
~Singleton();
private:
static Singleton* m_Instance;
friend Singleton& GetInstance();
};
inline Singleton& GetInstance()
{
assert(Singleton::m_Instance);
return *Singleton::m_Instance;
}
// in .cpp file
Singleton* Singleton::m_Instance = NULL;
Singleton::Singleton()
{
assert(!m_Instance);
m_Instance = this;
}
Singleton::~Singleton()
{
m_Instance = NULL;
}
Вот такую реализацию синглтона увидел в одном проекте.
ЗЫ: Для его корректной работы, в main было написано конечно же:
main() {
Singleton* s = new Singleton;
...
delete s;
}
+8
void SaveEncryptedFile( const char *text, int len, const char* filename )
{
char* pEncryptedText = new char[strlen(text)+1];
string x1 = "you'll";
string x2 = "never";
string x3 = "get a";
string x4 = "password";
char l_pBuf[255];
sprintf(l_pBuf,"%d",30*11/3);
string result = x1+x2+x2+x1+l_pBuf+x3;
encryptString(text,pEncryptedText,result.c_str(),strlen(text),result.length()); // там внутри xor
FILE* pFile = fopen(filename, "wb");
if (pFile)
{
fwrite(pEncryptedText,sizeof(char),len,pFile);
fclose(pFile);
}
delete[] pEncryptedText;
}
Нашёл в рабочем проекте. Для "расшифровки" файла используется ещё одна такая же функция.
+8
const Registry & Registry::getInstance()
{
Registry *instance = RegistrySingleton::instance();
if (!instance->mRootNode) {
instance->load();
}
return *instance;
}
void Registry::load()
{
try {
// ...
if (!mReader) {
mReader = XMLReaderFactory::createXMLReader();
}
// ...
mReader->parse( ... );
} catch (...) {
// ...
throw; // удачи всем пользователям обрабатывать исключения xerces...
}
}
боян синглтонно-абстрактный для чтения xml конфигурации с помощью xerces.
и не только ошибки не обрабатаешь (потому что getInstance() их бросает, угадай какой именно вызов из сотен загружает конфигурацию), но и в добавок народ не впечатал как многопоточность сделать правильно (RegistrySingleton это специализация шаблона который синхронизирует инициализацию mInstance переменной, и только).
−100
2/3
ПИТОНОПРОБЛЕМЫ ;)
P.S. Да, я читал доки. Не меня в них тыкать носом.
+138
if ("A" == Key.ToUpper().Substring(startIndex, 1))
num = 11L;
else if ("B" == Key.ToUpper().Substring(startIndex, 1))
num = 12L;
else if ("C" == Key.ToUpper().Substring(startIndex, 1))
num = 13L;
else if ("D" == Key.ToUpper().Substring(startIndex, 1))
num = 14L;
else if ("E" == Key.ToUpper().Substring(startIndex, 1))
num = 15L;
else if ("F" == Key.ToUpper().Substring(startIndex, 1))
num = 16L;
else if ("0" == Key.ToUpper().Substring(startIndex, 1))
num = 0L;
else if ("1" == Key.ToUpper().Substring(startIndex, 1))
num = 1L;
else if ("2" == Key.ToUpper().Substring(startIndex, 1))
num = 2L;
else if ("3" == Key.ToUpper().Substring(startIndex, 1))
num = 3L;
else if ("4" == Key.ToUpper().Substring(startIndex, 1))
num = 4L;
else if ("5" == Key.ToUpper().Substring(startIndex, 1))
num = 5L;
else if ("6" == Key.ToUpper().Substring(startIndex, 1))
num = 6L;
else if ("7" == Key.ToUpper().Substring(startIndex, 1))
num = 7L;
else if ("8" == Key.ToUpper().Substring(startIndex, 1))
num = 8L;
else if ("9" == Key.ToUpper().Substring(startIndex, 1))
{
num = 9L;
}
Программист, писавший ЭТО считал себя очень большим талантом и был даже тех.диром, пока не уволили....))
−105
- (void)reloadTableViewOnSecondaryThread
{
[self performSelectorOnMainThread:@selector(reloadTableViewOnMainThread) withObject:nil waitUntilDone:NO];
}
Разглядывая код от заказчика нашёл вот такой перл!
+69
package first;
import java.util.Scanner;
public class First {
public static void main(String[] args) {
String line = "Empty directories can be moved. If the directory is not empty,";
System.out.println("Enter simbol to delete:");
Scanner s = new Scanner(System.in);
String del = s.nextLine();
s.close();
StringBuilder sb = new StringBuilder(line);
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == del.charAt(0)) {
sb.deleteCharAt(i);
}
}
System.out.println(sb);
}
}
Это из раннего. Давно что-то не выкладывал, вот руки зачесались.
+124
using System;
class Example
{
static void Main()
{
int a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z;
for (a = 0; a < 2; a++)
{
for (b = 0; b < 2; b++)
{
for (c = 0; c < 2; c++)
{
for (d = 0; d < 2; d++)
{
for (e = 0; e < 2; e++)
{
for (f = 0; f < 2; f++)
{
for (g = 0; f < 2; g++)
{
for (h = 0; h < 2; h++)
{
for (i = 0; i < 2; i++)
{
for (j = 0; j < 2; j++)
{
for (k = 0; k < 2; k++)
{
for (l = 0; l < 2; l++)
{
for (m = 0; m < 2; m++)
{
for (n = 0; n < 2; n++)
{
for (o = 0; o < 2; o++)
{
for (p = 0; p < 2; p++)
{
for (q = 0; q < 2; q++)
{
for (r = 0; r < 2; r++)
{
for (s = 0; s < 2; s++)
{
for (t = 0; t < 2; t++)
{
for (u = 0; u < 2; u++)
{
for (v = 0; v < 2; v++)
{
for (w = 0; w < 2; w++)
{
for (x = 0; x < 2; x++)
{
for (y = 0; y < 2; y++)
{
for (z = 0; z < 2; z++)
Console.WriteLine(a + "|" + b + "|" + c + "|" + d + "|" + e + "|" + f + "|" + g + "|" + h + "|" + i + "|" + j + "|" + k + "|" + l + "|" + m + "|" + n + "|" + o + "|" + p + "|" + q + "|" + r + "|" + s + "|" + t + "|" + u + "|" + v + "|" + w + "|" + x + "|" + y + "|" + z);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
Только начал изучать шарп и делать было нечего. Знаю что заминусуют но такой "тупейший шедевр" не могу сюда не скинуть