- 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
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
package islands.general.playerlist;
import islands.general.player.Player;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Список игроков.
*
* @author Григорий
*/
public class PlayerList implements Externalizable, Iterable<Player> {
private static final long serialVersionUID = -8237639142683577971L;
private static final Player[] emptyPlayerArray = new Player[0];
private List<Player> list;
private int maxIndex;
public PlayerList() {
this(emptyPlayerArray);
}
public PlayerList(Player... players) {
list = new ArrayList<Player>();
maxIndex = 0;
for (int i = 0; i < players.length; i++) {
Player player = players[i];
add(player);
}
}
/**
* Добавить нового игрока в конец списка.
*
* @param player новый игрок
* @return индекс нового игрока
*/
public final int add(Player player) {
list.add(maxIndex, player);
return maxIndex++;
}
/**
* Установить нового игрока по указанному индексу.
*
* @param index индекс для установки
* @param player новый игрок
*/
public void set(int index, Player player) {
list.set(index, player);
}
/**
* Возвратить количество игроков.
*
* @return количество игроков
*/
public int getLength() {
return maxIndex;
}
/**
* Возвратить игрока по указанному индексу.
*
* @param index индекс игрока
* @return игрок
*/
public Player get(int index) {
return list.get(index);
}
@Override
public void writeExternal(ObjectOutput out) throws IOException {
out.writeInt(maxIndex);
for (int i = 0; i < maxIndex; i++) {
list.get(i).writeExternal(out);
}
}
@Override
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
maxIndex = in.readInt();
for (int i = 0; i < maxIndex; i++) {
Player player = new Player();
player.readExternal(in);
list.add(player);
}
}
@Override
public Iterator<Player> iterator() {
return list.iterator();
}
}
И еще мне кажется, что конструктор много лишних движений делает.
1. если честно, то для чего был создан класс уже не помню, т.к. чтение/запись есть всего в паре мест...так что можно было бы хранить непосредственно List<Player> где надо
2. вроде, это была крайне странная попытка инкапсулировать List<Player>
"В Кривом побережье зеленый дуб,
Золотой кругооборот на объеме дуба"...
и да, все-все-все исходники в utf-8?
2. по поводу будущего у нас в команде разные мнения...лично мое в том что такое крайне маловероятно и не стоит ради этого портить текущие комментарии (естественно, я говорю не про данный гк, а про те немногие места, где комментарии действительно нужны)
комменты в нашем коде изначально и строго английские, пусть корявые, но тем не менее
как и названия переменных - нет никаких shchetchik'ов, ломающих неокрепшие мозги
Я так люблю переключать раскладку
Я так люблю переключать раскладку
Правду не спрячешь - текст, относящийся к программированию, при прочих равных короче и яснее, если он на английском. Зато русский отлично подходит для поэзии.
Да, не все коллеги поддерживают моё мнение по этому поводу, только самые опытные.
Наш тимлид, кстати, фанат Source Inside, который не может в utf-8 (древняя версия у него).
> Хоть finded и readed и режут глаза, уж лучше так, что коверкать русский англицизмами
Т. е. лучше коверкать английский язык? :) У всех разный уровень английского. Два человека могут прочитать одну и туже фразу и абсолютно по разному ее перевести. Пример, guy - для кого-то приятель, а для кого-то ...; busket - для кого-то корзина, а для кого-то хер пойми что.
> Да, не все коллеги поддерживают моё мнение по этому поводу, только самые опытные.
"только самые опытные" - типа, кто пишет на родном языке лошок? ;)
если у кого плохой уровень английского настолько, что не может выразить обезличенной фразой из 3-5 слов, что делает его непонятный код, то 1) он не сможет прочитать и понять ничего в инете, даже в msdn с его simple english, т.е. его уровень как программиста крайне низок, 2) код, который обязан быть самодокументированным, уже представляет собой адскую кашу из nom_tsikl и nomer_polubloka (и мне, блять, доводилось такое видеть!), что будет крайне мерзко
какой вывод можно сделать? - либо человек ошибся с профессией, либо человеку есть куда и зачем прогрессировать, знание английского хотя бы на среднем уровне еще никому не вредило
! но кстати, есть же 1с
Про то, что надо прогрессировать - соглашусь.
Вот и не пойму: это возрастная особенность или нет?
если кто учил раньше немецкий, монгольский или финский, те ходили в "начинающие" группы по английскому, кто был более уверен в своих силах - в "продолжающие"
экзамен (он же шёл в госы, насколько я помню), также отличался сложностью для разных выбранных уровней
хотя в том же церн'е да, английский основной рабочий
группа в ~25-30 человек (1-2 курс же еще) всё равно делится пополам
если большинство, например, запишут себя в начинающие, то занятия в обеих будут проводиться по программе начинающих, преподам в целом всё равно как раз в неделю проводить занятия
вроде бы для особо желающих факультативно кафедра английского проводила "углубленные" (читай, полезные) занятия - не помню, бесплатно или нет - но я туда почему-то не ходил, на первых 2 курсах хватало физики с матаном, чтобы ебануться
Аминь.