- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
public void UpdateCollection()
{
object l = new object();
lock (l)
{
// Обновляем коллекцию
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+110
public void UpdateCollection()
{
object l = new object();
lock (l)
{
// Обновляем коллекцию
}
}
Эксклюзивная блокировка в действии
+166
package com.sun.jersey.core.util;
public class KeyComparatorLinkedHashMap<K, V>
extends KeyComparatorHashMap<K, V>
....
public class StringKeyIgnoreCaseMultivaluedMap<V>
extends KeyComparatorLinkedHashMap<String, List<V>>
....
public class StringKeyStringValueIgnoreCaseMultivaluedMap
extends StringKeyIgnoreCaseMultivaluedMap<String> {
....
Женерики не нужны.
+12
class Random
{
public:
int getInt(int min, int max)
{
return std::uniform_int_distribution<int>(min, max)(_rd);
}
double getReal(double min, double max)
{
return std::uniform_real_distribution<double>(min, max)(_rd);
}
bool getBool()
{
return std::uniform_int_distribution<int>(0, 1)(_rd);
}
private:
std::random_device _rd;
};
Даже не знаю, говнокод это или нет.
+155
/* Декодирование параметров
===========================================================================*/
$(document).ready(function () {
var stext = $("input[name = 'stext'], input[name = 'text']");
function decodeURLParameter(name) {
if (!!name) return decodeURI((RegExp(name + '=' + '(.+?)(&|$)').exec(location.search) || [, null])[1]);
}
if (stext) {
var urlText = decodeURLParameter('stext');
if (urlText != undefined && urlText != "" && urlText[0] != '&' && urlText != "null") {
var sstext = [stext[1], stext[2]];
$(sstext).val(urlText);
}
}
});
Будучи младшим веб-разработчиком наваял...
−96
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return
interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight ||
false ? YES : NO;
}
Продолжаем тему укуренных сравнений
+126
try
{
var ticketInfo =
WebServicesRepository.XLoginInstance.XLoginTicketHandler(ticket.Ticket);
if (!(ticketInfo.Errors.Length > 0))
FormsAuthenticationUtility.SetAuthCookie(ticketInfo.UserID, ticketInfo.UserLogin, ticketInfo.UserPassword, ticketInfo.Email, false);
var profile =
AccountRepository.GetUserProfile(ticketInfo.Email, ticketInfo.UserPassword) ?? null;
var authForm =
new AuthenticateForm()
{
Login = profile.Login,
Password = profile.Password,
IsPersistent = true
};
AccountRepository.SignIn(authForm, ref errors);
}
catch(Exception e)
{
log.Error("Автоматическая авторизация", e);
};
Наговнокодил на Asp.net )
+69
Calendar today = Calendar.getInstance();
Calendar tz = (Calendar) today.clone();
// Set Date 01.05.13
tz.set(Calendar.MONTH, 4);
tz.set(Calendar.DAY_OF_MONTH, 1);
Calendar endTrial = (Calendar) tz.clone();
endTrial.add(Calendar.DAY_OF_MONTH, 30);
устанавливаем endTrial на 30 дней от 01/04
+83
while (today.before(endTrial)) {
today.add(Calendar.DAY_OF_MONTH, 1);
daysBetween++;
}
считаем разницу между двумя датами
+132
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
tmythread=class(tthread)
private
filename:string;
procedure execute;override;
public
constructor create(filename:string);
destructor destroy;
end;
type
TForm1 = class(TForm)
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
tlst:tthreadlist;
implementation
{$R *.dfm}
function getCount : integer;
begin
Result := tlst.LockList.Count;
tlst.UnlockList;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
tlst:=tthreadlist.Create;
end;
{ tmythread }
constructor tmythread.create(filename: string);
begin
self.FreeOnTerminate:=true;
self.filename:=filename;
inherited create(true);
self.Priority:=tphigher;
self.Resume;
tlst.LockList.Add(self);
tlst.UnlockList;
end;
destructor tmythread.destroy;
begin
tlst.Remove(self);
tlst.UnlockList;
end;
procedure tmythread.execute;
begin
while not terminated do
sleep(100); // в качестве примера, чем-то нагружаем цикл.
end;
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
n:string;
temp:tmythread;
s:string;
begin
try
for i:=0 to getcount-1 do
begin
temp:=tlst.LockList.Items[i]; // вот это место. Как Вам кажется, это правильно, или не?
if assigned(temp) then
n:=temp.filename;
if n='ololo' then // это просто пример, не смеемся) АХАХАХАХ )
begin
showmessage('Сканирование этого файла уже выполняется') ;
exit;
end;
end;
tmythread.create('ololo');
except
end;
end;
end.
Стоит задача сканировать файлы в разных потоках. Как Вам кажется, это адекватное решение?
Код полностью.
−169
// Функция возвращает округленное значение общего количества продуктов питания.
//
// Параметры:
// Число - число, которое необходимо округлить.
// Порядок - число, порядок округления.
Функция УППБУ_Округлить(Число, ПорядокОкругления) Экспорт
Порядок = Число(Строка(ПорядокОкругления));
..........
КонецФункции
Тиражное решение от одного из партнеров...