Трекер нужен если невозможно оценить результат работы инженера, только так. Если вам предлагают трекер — поздравляю, вы попали именно туда. Ваша работа это непонятное колдовство, алхимия для нанимателя, руны и иероглифы на непонятном языке. А еще это человек/люди с определенным типом мышления, у которых в системе мировоззрения обман и кидалово не есть чем-то необычным (и вот тут подумайте — почему). И то что вас могут выставить на деньги, вторгаются в вашу приватность — это все такое, дорогие мои друзья. Настоящая трагедия в том, что с этого момента ваша производительность меряется не результатом, а процессом, и вы в это рано или поздно втягиваетесь. Вместо того чтобы делать результат и расти профессионально — вы создаете процесс: картинку эффективной работы, красивые логи в трекере, чарты в джире, митинги и прочая ерунда. В лучшем случае вы медленно развиваетесь в профессиональном плане, в худшем — деградируете. Подумайте надо ли оно вам. Десять раз подумайте. Посредственности не создают нового и не зарабатывают нормальных денег. Но если вам ok-ish клепать очередной стартап на заезженном фреймворке всю оставшуюся жизнь — это тоже может быть лучший выбор. Каждому свое. Просто десять раз думайте, когда вам предлагают трекер.
Румунка з чіпового хостела пропонує роботу ))) Чувак, а чого ти хотів? У людини немає грошей на окрему кімнату. Тобі дуже пощастило отримати хоч щось))
«Нет доступных сотрудников», сложилось впечатление что база была спаршена и причесана, но реального контакта с компаниями нет. Смысл это релизить, если нечем пользоваться?
Вам треба throttling, а не queue. Точніше throttling поверх queue.
Лінь, я й так надто багато часу витратив
Щодо цого коду? Ну, імхо це пехапе. Для того щоб зрозуміти як працює
Trader.CreateOrder()
треба розкурити вагон непотрібного коду в непотрібних місцях. Код працює неявно. Голанг створений з ідеєєю такого не робити. Чому не використовувати логер явно? Чому явно не використовувати черги? Від кого написана ця вся магія?
І ще, ви знаете різницю між «panic» та «fatal»? Для чого їх дві?
Чому використання «panic» та «fatal» добре тільки наверху ієрархії, в main()?
go queueDecorated.run()
- а sync.WaitGroup? Чи у вас норм, що головний тред уже всьо, процес на процесорі тоже всьо — а рутина ні сном ні духом. Чи ви не хочете її лякати перед смертю? Чуваки, це пехапе.
_ = trader
— це невірна декларація оголошення змінної — просто не збілдиться. Якби у вас вище вже була правильна декларація «_» - то б збілдилося, але я не розумію для чого вам безіменна декларація чого-небудь. Таке роблять щоб щось проігнорувати, а тут для чого?
func newTrader(
// ... client connection
) *hitTrader {
return &hitTrader{}
}
- без коментів. Ой, таки з коментом.
І ще, я не знаю реалізації логера і черги, але передавати типи (накшталт CreateAttempt) по посиланню таки швидше аніж кожного разу іх копіювання.
Лінь далі колупатися.
Але ж код таки поганий...
Тут всі чотири методи різні
Якщо у вас проект, де все приватне... Що ви самі про це думаєте?
Інтерфейси тут саме просте ))
Ярослав, ще одне. Ви приймаєте інтерфейс, а потім робите мутацію результата роботи цього інтерфейсу. Так, це буде працювати. Але є один момент — вашому коду побарабану на реалізацію цього інтерфейсу. Тобто, — воно не буде працювати так як треба, бо просунути можна будь яку реалізацію. Ви вже або робіть перевірку на тип, і працюйте з типом. Або не мутуйте результат роботи чужої реалізації інтерфейсу (яку ви не знаєте і знати не можете). Знову, гляньте не те як зроблено в тій статті, і подумайте чому так.
І на коменти гляньте і неймінг. Обнесено парканом з коментів, по назві і коментам зразу зрозуміло що то знущання над чужим типом.
І ще, що робить ваш інтерфейс Generator, інкрементує? Тоді якого він Generator?
Там скоріше про/як Middleware. Можете ще порівняти код звідти і ваш.
Інтерфейс, метод і змінна — це три різні речі. Причому ваші приватні методи до приватного інтерфейсу?
type source interface {
increment(int) int
wrap(int) int
proxy(int) int
same(int) int
}
1. Неймінг — golang.org/...e_go.html#interface-names
2. Кількість методів — golang.org/...ective_go.html#interfaces.
3. Для яких цілей вам потрібен приватний інтерфейс?
4. Для чого вам 4 ідентичних метода?
Я не хочу робити код ревью, але там у вас весь код «червоний».
Взагалі мене турбує не ваш «сахар», а те що ви обрали тему, яку в принципі слід оминати на голанг. Таке знущання над чужим типом — це збочення (хоча й гарно і професійно на об’єктах, ООП і пехапе). Якщо вам хочется таке писати — сядьте, подумайте кілька днів. — і не пишіть. Якщо вам таке треба писати — теж подумайте і не пишіть. Якщо вже вибору немає — пишіть, але обнесіть коментами як парканом, щоб всім було зрозуміло навіщо вам таке знущання. Якщо вам треба робити таке знущання над своїм типом — не використовуйте голанг (або хоч не виносьте це на публіку).
P.S.: Я розумію, це код для статті. Ви засунули купу непотребу, щоб проілюструвати декоратор. Але голанг — не про це.
Наприклад, приватний інтерфейс — який сенс? Розрулювати проблеми в своєму пекейджі — вітаю, у вас більші проблеми (код пекейджу і його розробники). 4 однакових метода в інтерфейсі — взагалі де логіка? В реалізації? А при чому інтерфейси до їх реалізації?
У мене, мабуть, все.
І? Ви б хоч конвецію неймінгу осилили перед тим як писати статті. Бачите як вище бомбить у людей, бо вони ваш код за типовий голанг сприймають?
Вам не сподобається моя відповідь. Прочитайте хоч це golang.org/doc/effective_go.html — на рахунок стилю.
А ще — голанг це про мінімум максимально зрозумілого і ефективного коду. Про типи, а не про об’єкти. Не про те, що ви реалізували.
Порівняйте ваш код з кодом здорових пекейджів (та хоч з ядра) — знайдіть різницю.
Не ображайтесь, але чим більше я дивлюсь на ваш голанг, тим більше бачу там пехапе...
Завидуйте тише
И как результат, топ?
Вы знаете (я надеюсь) уровень дохода менеджера и инженера. Если менеджер может быть инженером — он будет инженером в первую очередь. Если он все еще только менеджер — он или не может, или не хочет. Случай «не может» разобран выше, случай «не хочет» (якобы энтузиаст) — это вообще оксюморон, так как что же это за такой менеджер, который не может себя эффективно заменеджить?