Paymentwall: я офигиваю.

Dec 25, 2014 20:20

https://github.com/paymentwall/paymentwall-java/blob/master/com/paymentwall/java/PaymentwallPingback.java
Ладно, если так пишут на PHP. Подозрительно, если так пишут на Python. Очень плохо, если так пишут на Java.

У меня есть только одна мысль, когда я вижу
public final int PINGBACK_TYPE_SUBSCRIPTION_CANCELLATION = 12;
public final int PINGBACK_TYPE_SUBSCRIPTION_EXPIRED = 13;
public final int PINGBACK_TYPE_SUBSCRIPTION_PAYMENT_FAILED = 14;
Это совместимость с Java 1.4. Но ведь следующая строчка
protected LinkedHashMap> parameters = new LinkedHashMap>();
это 1.5. WTF?! Почему не Enum?

Но следующие, что я увидел, меня просто убило. Из README:
setAmount(0.99);
setCurrencyCode("USD");

Ладно, если просто сохранить деньги в double. Но это провоцирует на
System.out.println(1.03 - .42);
0.6100000000000001
Почему нельзя было сделать BigDecimal?

API должен быть таким, что бы совершить было как можно сложнее. Тем более в строгой типизации с проверкой при компиляции.
Previous post
Up