-
Лучший говнокод
- В номинации:
-
- За время:
-
-
+74
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
if (myTransactions
.get(i)
.getTransactionType()
.name()
.compareToIgnoreCase(
com.mycompany.myproject.common.TransactionType.ENTER
.name()) == 0
|| myTransactions
.get(i)
.getTransactionType()
.name()
.compareToIgnoreCase(
com.mycompany.myproject.common.TransactionType.ENTER_AGAIN
.name()) == 0) {
BigDecimal fee = myTransactions.get(i).
.getAmount().subtract(
myTransactions.get(i)
.getContribution());
// ...
}
// Notes by Wissenstein
//
// package com.mycompany.myproject.common;
// public enum TransactionType {
// ENTER, ENTER_AGAIN, GET, GIVE
// }
// ...
// public class Transaction {
// ...
// public TransactionType getTransactionType() {
// ...
// }
// }
// ...
// List<Transaction> myTransactions;
// ...
// P.S. Идентификаторы изменены.
К тому, что myTransactions.get(i) повторяется, я уже привык и рефакторю это одним махом.
Однако использованный здесь метод сравнения значений типа enum меня озадачил…
wissenstein,
23 Января 2014
-
+74
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
for (int i = 0; i != nl.length(); i++)
{
out.write(nl.charAt(i));
}
for (int i = 0; i != footerStart.length(); i++)
{
out.write(footerStart.charAt(i));
}
for (int i = 0; i != type.length(); i++)
{
out.write(type.charAt(i));
}
for (int i = 0; i != footerTail.length(); i++)
{
out.write(footerTail.charAt(i));
}
for (int i = 0; i != nl.length(); i++)
{
out.write(nl.charAt(i));
}
Зачем писать функцию, когда можно успешно копипастить циклы
http://grepcode.com/file/repo1.maven.org/maven2/org.bouncycastle/bcpg-jdk16/1.45/org/bouncycastle/bcpg/ArmoredOutputStream.java
roman-kashitsyn,
15 Декабря 2013
-
+74
byob,
18 Октября 2013
-
+74
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
public class Encoder {
public static void encode(final OutputStream out, Node node) throws IOException {
node.accept(new NodeVisitor() {
@Override
public void string(StringNode node) {
byte[] value = node.toByteArray();
out.write(Integer.toString(value.length).getBytes(Constants.CHARSET));
out.write(':');
out.write(value);
}
// ... другие методы для других типов нод ...
}
}
}
Решил поменять в паре-тройке модулей пачки ифов на паттерн visitor... И получил пинка от жабы ;(
write() кидает IOException, а значит и метод string() в анонимном классе тоже должен кидать, и метод string() в интерфейсе NodeVisitor тоже... Но ведь соседним посетителям этот IOException нахер не сдался...
Checked exceptions - зло.
bormand,
12 Октября 2013
-
+74
- 1
- 2
- 3
- 4
- 5
- 6
Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.
Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.
Stertor,
11 Июля 2013
-
+74
- 1
- 2
- 3
- 4
- 5
- 6
Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.
Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.
Stertor,
11 Июля 2013
-
+74
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
private boolean userInOneRegistrationNode() throws DfException {
String uname = OrganizationStaffStructureHelper.getCurrentUserName();
int i = 0;
IDfCollection NodesCol = DQLHelper.getCollection(DQL_GET_REGISTRATOR_DIV, new String[]{uname});
while (NodesCol.next()) {
if (!(NodesCol == null)) {
String group_name = NodesCol.getString(GROUP_NAME);
i = i + 1;
}
}
if (i == 1) {
return true;
}
return false;
}
Заменяется 2мя строками один - select count(*), вторая - полученный результат Integer.ValueOf(...).
Landing,
04 Марта 2013
-
+74
- 1
- 2
- 3
- 4
- 5
- 6
private String stateChangedReason;
...
if (stateChangedReason != null && stateChangedReason instanceof String) {
dealerManageInfo.setChangeStateReason(stateChangedReason.toString());
}
amarfey,
15 Февраля 2013
-
+74
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
@Override
protected void onResume() {
super.onResume();
logUpdateTimer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
TextView tv = (TextView)findViewById(R.id.logsView);
tv.setText(LogBuffer.getLogs());
}
});
}
};
logUpdateTimer.schedule(task, 0, 1000);
}
Собрался с силами и высрал реализовал свою задумку - уведомлялку о новых комментах на ГК под Андроид.
Проверяет сток каждые 5 минут, если увидит новый коммент - вибрирует и моргает светодиодом, при клике по уведомлению открывает сток в браузере.
https://github.com/bormand/govnotify
P.S. Вопрос к явистам - можно вон то говнище, которое я привел в топике, как-то попроще записать?
bormand,
26 Декабря 2012
-
+74
- 1
- 2
- 3
- 4
- 5
- 6
private static class NullReader extends Reader {
public int read(char[] cbuf, int off, int len) {
return 0;
}
public void close() {}
}
Однажды понадобилось работать с модулем, который что-то читает с помощью StreamTokenizer, но вместо реального файла подсовывать ему что-то своё, генерируемое на ходу, и при этом быть в курсе, какое место он сейчас читает. Решил пронаследоваться от StreamTokenizer и переопределить ему nextToken(). Оказалось, что у StreamTokenizer нет пустого конструктора, надо обязательно вызвать super и передать туда какой-нибудь Reader. Попробовал передавать null - оказалось, что в его конструкторе стоит проверка, которая сразу кидает NullPointerException. Блин, зачем ему Reader, если он к этому Reader никогда не обратится, ведь я nextToken переопределил! Пришлось сделать свой Reader-заглушку. Но чтобы пронаследоваться от абстрактного Reader, нужно обязательно определить методы read и close. Вот такая шняга в итоге получилась. Недавно случайно открыл код на этом месте и долго на неё пялился :-)
GoblinAlchemist,
23 Ноября 2012