- 1
- 2
- 3
- 4
- 5
- 6
- 7
Возможно, вы разделите мою точку зрения насчёт того документа. Судите сами:
1. Это всё ещё Vue
2. Он закрывает основные потребности разработчиков
3. Разумеется, он избавляет от бойлерплейта
4. Документация — огонь
5. Большое, пассионарное сообщество
Fike 04.11.2020 18:26 # −1
2. What we want to achieve with Quasar is to raise the bar for web development as a whole. Make it go forward, evolve. Change minds. Point out when there’s a better alternative to current establishment. You deserve a stellar development experience.
3. Your full focus is on your App's content rather than all other boilerplating stuff around it
4. Great documentation
5. Big community
пиздец, он даже пять пунктов самостоятельно придумать не смог
bormand 04.11.2020 18:32 # 0
3_dar 04.11.2020 20:55 # 0
Xepyc_DJIuHyc 04.11.2020 18:59 # 0
gg123 04.11.2020 19:37 # 0
defecate-plusplus 04.11.2020 19:38 # 0
bormand 04.11.2020 20:09 # +1
Химия без души. То ли дело дистиллят.
guest6 04.11.2020 20:26 # 0
defecate-plusplus 04.11.2020 22:14 # 0
Gorbatokaloedov 20.12.2022 07:31 # 0
guest3 04.11.2020 19:51 # 0
Xepyc_DJIuHyc 04.11.2020 19:57 # 0
guest6 04.11.2020 22:18 # 0
Fike 04.11.2020 20:23 # 0
bootcamp_dropout 04.11.2020 20:42 # 0
defecate-plusplus 04.11.2020 22:28 # 0
кфц и макдак соснулей
bootcamp_dropout 05.11.2020 01:41 # +1
И никто не говорит про кондиционер который хуярит в спину и то что сосед слева моется раз в три дня
bormand 05.11.2020 01:42 # 0
bootcamp_dropout 05.11.2020 01:46 # 0
defecate-plusplus 05.11.2020 01:52 # 0
А кондей лучше когда есть, он инвертор и его достаточно с запасом, чем когда его нет или он не вывозит.
bootcamp_dropout 05.11.2020 01:57 # 0
Я вообще стесняша и даже не смотряна то что я работал над собой, говорить о том что чувак воняет мне страшно неудобно
Проще уволить, благо плохая гигиена часто присуща людям с в принципе плохой социализацией
guest6 05.11.2020 02:01 # 0
так ведь хикки самые крутые программисты, нет?
У меня давно-давно был вонючий коллега, он умел настраивать IBM WebSphere
Ощути маштаб
bormand 05.11.2020 02:02 # 0
guest6 05.11.2020 02:04 # 0
bootcamp_dropout 05.11.2020 02:10 # 0
но он про другие стороны личности скорее
вообще для меня это сводится к тому что есть чувак и его набор хороших и плохих качеств и умение охуенно кодить - просто одно из них. Менеджеры возможно смотрят на это со стороны того как человека можно получше приставить к работе, поэтому решения о найме или увольненни принимают они а не я
Fike 05.11.2020 02:13 # +1
guest6 05.11.2020 02:18 # 0
guest6 05.11.2020 01:46 # 0
у меня кондей в полотке, а спина у меня сзади, а не над головой на расстоянии два метра
bootcamp_dropout 05.11.2020 01:47 # 0
guest6 05.11.2020 01:48 # +1
тогда выключи кондей, и выгони вонючего чувака
зачем ты с ним живешь?
bootcamp_dropout 05.11.2020 01:52 # 0
А коллеги из предыдущего офиса рассказывали как их раз в день утром выгоняли на 10 минут для обслуживания какой-то вентиляционной хуйни
guest6 05.11.2020 08:28 # 0
Fike 05.11.2020 01:59 # +2
bootcamp_dropout 05.11.2020 02:10 # +1
Fike 05.11.2020 02:12 # 0
Fike 05.11.2020 02:58 # 0
bormand 05.11.2020 03:07 # 0
guest6 05.11.2020 03:59 # 0
guest6 05.11.2020 08:47 # 0
guest6 05.11.2020 03:59 # 0
Fike 05.11.2020 04:27 # 0
тне-то да
bootcamp_dropout 05.11.2020 04:27 # 0
Fike 05.11.2020 04:31 # 0
guest6 05.11.2020 04:32 # 0
украшение коллектива же
bootcamp_dropout 05.11.2020 04:39 # 0
Fike 05.11.2020 04:41 # 0
bormand 05.11.2020 08:57 # 0
guest6 05.11.2020 08:46 # 0
3_dar 04.11.2020 21:00 # 0
guest6 04.11.2020 22:38 # 0
А у тебя MacBook Air с наклеечкой есть?
Fike 05.11.2020 00:11 # 0
guest6 05.11.2020 00:12 # 0
Ну у тебя хотя бы есть убунту с красивой тян на рабочем столе?
bormand 05.11.2020 00:18 # 0
Эй, прекрати подглядывать за моим компом.
guest6 05.11.2020 00:21 # 0
Кстати, прыщебляди порой такие выебонщики: у них обязательно полупрозрачный терминал с htop есть в углу
А виндоблядь сидит с черным фоном и синим фаром
bormand 05.11.2020 00:23 # 0
Fike 05.11.2020 00:19 # 0
bormand 05.11.2020 00:23 # 0
guest6 05.11.2020 00:24 # 0
bormand 05.11.2020 00:17 # 0
Fike 05.11.2020 00:19 # 0
defecate-plusplus 05.11.2020 00:17 # +1
guest6 05.11.2020 00:23 # +1
Так что они хоть и стоят дешевле, но если сломаются -- то официального суппорта тебе не видать: только гарантия из магазина
А значит у мастера в сервис центре детали будут только с АлиЭкспресс, и некоторые мастера могут просто нахуй послать: будешь сам себе потом BGA пайку делать, лол
defecate-plusplus 05.11.2020 00:27 # 0
когда за $900 получается нормальный ноут на 8 котлов, 32 рам, 512 ссд ево плюс, 14" FHD IPS и < 2кг
а, и это с НДС, в белую
guest6 05.11.2020 00:29 # 0
HP мне нравится, кстати. У меня есть древний HP еще с sandy bridge i5, и он какой-то "крепкий" на ощупь, ничего не дребежжит, не смотря даже на множественные вскрытия не очень прямыми руками
defecate-plusplus 05.11.2020 00:33 # 0
вон то, что я написал выше, это какое-то исключение из тренда, мягко говоря
guest6 05.11.2020 00:37 # 0
например, я хочу крупный экран, сильный проц типа i7, и встроенную видеокарту интела. Но в такую модель любят запихать еще nvidia, хотя он мне не нужен.
Да и в десктопе свободы стало меньше: с момента завоза "северного моста" в проц, апгрейтить проц стало практически нереально: можно только i5 на i7 поменять, а следующее поколение часто уже не будет работать с этим чипсетом. Всегда вспоминаю 775, когда можно было через пять лет воткнуть новый проц, и он заводился
defecate-plusplus 05.11.2020 00:42 # 0
продолжай заносить бабло в штеуд
но и частичный апгрейд в условиях, когда в штеуде < 5% прирост ежегодно, это бредятина
надеюсь, борманду стыдно
guest6 05.11.2020 00:46 # 0
* выкинуть на помойку
* потратить 3К и превратить в работающий девайс
Но в древнее говно обычно можно пихнуть памяти (ddr2 и те же Core 2 с рук продаются по цене бутылки пива примерно) и заменить hdd на ssd, и еще пять лет потом смотреть ютуб и читать почту.
А вот современные компы через десять лет проще сразу на помойку унести кмк
defecate-plusplus 05.11.2020 00:55 # 0
я про 775 вспоминаю только то, что там был одноядерный пень-4 (прескот, чтоли), который раскалялся как ебаная сковорода
guest6 05.11.2020 01:03 # 0
>прескот
Верно: на 775-м первый проц был прескотт, и он был хуёвый (правда это был первый проц с SSE3). Но там же был Core 2 Yorkfield, который до сих пор можно использовать, если ты вдруг не собираешься писать на компилируемых языках:)
Вот собственно замена прескота (на котором хорошо работают только XP с шестым эксплорером) на йоркфилд, продающийся на авите за 800 рублей, и есть отличный апгрейт
j123123 05.11.2020 04:28 # 0
Я сижу за компом с процом Intel Core 2 Quad Q9300 и мне это нихуя не мешает писать на компилируемых языках.
guest6 05.11.2020 04:31 # 0
впрочем, если у тебя нету крестошаблонов и адских иде для джав, то может и не так все страшно
j123123 05.11.2020 04:33 # 0
guest6 05.11.2020 04:36 # 0
я вот линуксовое ядро на третьем пне копермайне собирал в юны годы
В общем, ты только подтверждаешь мою идею про апгрейтабилити 775-го сокета: в комп 2005-го года можно втыкнуть йоркфилд, ссд и 8гб ddr2, и потечь
Fike 05.11.2020 04:36 # 0
по эзернету
guest6 05.11.2020 04:40 # 0
ssd отлтчно втыкиывается даже во вторую сату, и хотя там он и не раскрывает своего потенцивала вероятно (интуитивно так кажется), все равно годно. главное, не забыть включить AHCI вместо эмуляции IDE, а то питухи забывают
Fike 05.11.2020 04:52 # 0
там до подключения по PCI-E третья сата долго ограничивала скорость в районе ~600мб/с. а с учетом того, что сата еще и не умеет параллелить, становится совсем грустно.
guest6 05.11.2020 04:58 # 0
но по сравнению с подключением по pci-e (nvme) обе саты страшно сосут, конечно.
не очень понял про параллелить: SATA умеет NCQ (кажется и вторая) если работаешь через AHCI: там хост срет командами, а сата их распологает как ей удобно.
Это было полезно и для hdd (чтоб не крутить туда сюда) и для веротяно для ssd(можно группировать доступ)
Fike 05.11.2020 05:06 # 0
NCQ:
> queuing up to 32 commands can keep the drive busy during this time.
ну такое. я бы не надеялся что даже при хорошей загрузке это число будет утилизоваться полностью.
guest6 05.11.2020 05:11 # 0
Я помню, что crystaldiskmark по хорошем последовательном чтении блоками на третьей сате давал где-то 500, на второй видимо дал бы 300, а на nvme давал типа 3000.
Так что разница очевидна
зы: гуглнул картику
https://i.redd.it/4t37x6aqq2v11.jpg
q - глубина очереди
t -- колво потоков
нет никаких причин не использовать nvme, если ваше железо позволяет
j123123 05.11.2020 04:45 # 0
Да хуй его знает, вроде сразу после покупки что-то пытался экспериментировать, но меня в какой-то момент заебало ебаться с гентой, и я накатил кажется опенсусю. Ну и винт, где была вся эта хуйня (там отдельно я сделал раздел для генты, отдельно для опенсуси) в какой-то момент начал дохнуть, и я с него всю ценную хуйню через ddrescue перенес на другой винт, раздел с гентой я переносить не стал, потому что нахуй не надо. /home/ у меня в отдельном разделе было
guest6 05.11.2020 04:46 # 0
охуясе, это где zypper?
первый раз вижу живого сусера за много-много лет
j123123 05.11.2020 04:48 # 0
Сейчас-то я уже не сусер. Тут хубунта стоит.
j123123 05.11.2020 04:37 # 0
и констэкспров. Они тоже могут медленно работать. Вся эта компилтайм-питушня работает через тупую интерпретацию, надо чтоб JIT https://govnokod.ru/25558#comment473371
guest6 05.11.2020 04:41 # 0
bormand 05.11.2020 01:53 # 0
guest6 05.11.2020 04:04 # 0
может, стоит почитать..
defecate-plusplus 05.11.2020 10:48 # 0
ты очень отстал
с выпуском core 2 и далее (всякие бриджи и т.д.) амд затормозился, и штеуд с годами потерял чувство конкуренции, начал выпускать одно и то же из года в год, про пирформанс менее 5% из поколения в поколение выше это не шутка
амд долгое время выпускал откровенный шлак, который еле конкурировал с аналогичным по современности core i3, пока не стрельнул со своими процами Zen (ryzen, уверен, слышал), которые с ходу были неплохими, дохуя дешевыми и тупо там где штеуд давал 4 физических ядра, рязань давала 8, будучи в 1.5-2 раза дешевле
на текущий момент та же рязань уже 4 поколения зарелизена (серия 5ххх, на прилавки ещё не добралось), интел продолжает глотать пыль, даже просрав последние свои оплоты "производительность в однопотоке" или "посмотрите, вот в этих игорах на интеле пока ещё быстрее на 2 фпс"
у амд есть 64-ядерные процы, у амд выходят всё более удачные (быстрые и энергоэффективные) мобильные процы (у которых и встроенный графоний изначально лучше интеловского), и сегмент в ноутах начинает расти с прежних 0%, у амд лучше техпроцесс, но теперь, пользуясь майкой лидера, амд начинает поднимать цены
и всё это время амд старается менять сокеты пореже, в большинстве случаев на матери предыдущего поколения надо будет биос накатить, чтобы они поддерживали новое (но он вскоре всё же поменяется, в 21 или 22, ради поддержки DDR5)
rotoeb 05.11.2020 11:06 # 0
Xepyc_DJIuHyc 05.11.2020 12:16 # 0
defecate-plusplus 05.11.2020 12:42 # 0
Xepyc_DJIuHyc 05.11.2020 12:45 # 0
OCEHHuu_nemyx 05.11.2020 00:27 # 0
guest6 05.11.2020 00:31 # 0
Я же рассказывал про телевизор самсунг, который в один прекрасный день перестал выходить в Интернет, потому что он сделан не для России, а самснуг видит российский ип?
Официальный сервис центр ожидаемо развел руками
В итоге его через ВПН пустили через восточную европу, и он успокоился
Fike 05.11.2020 02:09 # 0
Тут, конечно, вставить бы негодующий комментарий что мол хули ты соседей давишь, но у меня видны всего две 5ггц сетки, и соседская гораздо выше, вроде как во втором диапазоне, где можно разбежаться на 160. Какая беспроводная квазисингулярность )))
guest6 04.11.2020 21:59 # +1
пошел на сайт
>Video Tutorials
понятно
а вы говорите "почему с++?"
да потому что ебаная хипстота заебала
bormand 05.11.2020 03:16 # 0
guest6 04.11.2020 22:19 # +1
guest6 04.11.2020 22:23 # +1
надо путаться и рваться
bormand 04.11.2020 22:26 # 0
guest6 04.11.2020 22:30 # 0
чувак очень креативный
>> Кроме хабра меня можно почитать в телеге: t.me/myobrechenychannel
>>Король разработки
блядь
[quote]
Субъект: Я вам не субъект, а король мятных лепёшек!..
Барышня: Ну, вы полегче, полегче! Я сама королева собачей шерсти!
[/quote]
(c) Д. Хармс.
В целом самокопание и рефлексия это хорошо, но лучше бы самому её как-то переваривать кмк
bormand 04.11.2020 22:28 # 0
> когда первая скобка на одной строке с декларацией
> фронтендеры
Сука!
guest6 04.11.2020 22:31 # 0
В сишарпе (и вообще у МС, в сишке с крестами тоже) их ставят на новой строке.
Так что
foo() {
}
для него это фронтэнд
defecate-plusplus 04.11.2020 22:33 # 0
самый норм, кстати
guest6 04.11.2020 22:36 # 0
bormand 04.11.2020 22:37 # 0
guest6 04.11.2020 22:39 # 0
Пользуясь случаем, спрошу: как поместить дефлорацию в неймспейс "Foo::Bar::Baz" до версии C++17, и не умереть со смеху?
bormand 04.11.2020 22:42 # 0
namespace Bar {
namespace Baz {
// но вопрос видимо риторический был?
} // namespace Baz
} // namespace Bar
} // namespace Foo
guest6 04.11.2020 22:43 # 0
Впрочем, это можно отвключить
bormand 04.11.2020 22:44 # 0
bormand 04.11.2020 22:45 # 0
guest6 04.11.2020 22:50 # 0
MyApp::MySubsystem::MyPublicFacadeClass
MyApp::MySubsystem::Impl::DoNotUseThisCl assPlz
Но верно это тупая жабья привычка, и так не нужно
bormand 04.11.2020 23:04 # 0
defecate-plusplus 04.11.2020 22:52 # 0
перенос открывающей скобки на новую строчку нужен лишь в случаях, когда писателю кода кажется, что её стало слишком не видно на той, где она должна быть
но лишь бы не как в M$ в 90е какой-то обмудок писал вот так (в MFC или ATL, уже не помню):
вот такая херня вымораживает
guest6 04.11.2020 22:54 # 0
https://en.wikipedia.org/wiki/Indentation_style#Brace_placement_in_com pound_statements
см GNU, кстати
но это только для конструкицтй ВНУТРИ функции
bormand 04.11.2020 22:55 # 0
guest3 04.11.2020 23:01 # −1
guest6 04.11.2020 23:03 # 0
Fike 05.11.2020 00:26 # 0
а вообще самое охуенное в этой конвенции - это
вместо банального
guest6 05.11.2020 00:27 # 0
Я райдер видел пару раз всего: .net я юзаю в основном на винде и в студии
Fike 05.11.2020 00:32 # 0
Да я не могу уже. Чувак, кажется, никогда не работал с чужими библиотеками, где сотня вещей названа одними и теми же именами, и пыришь в IDE, пытаясь понять, что из автокомплита нужно подставить.
Особенно хлёсткий багор будет, когда кто-то сядет, сделает
и не будет понимать, почему у него не получается передать туда интерфейс.
guest6 05.11.2020 00:40 # 0
Зачем выдумывать что-то свое, если кодстайлы есть? Их можно применять, и течь, если ты пишешь под винду
bormand 05.11.2020 01:05 # 0
А я вот решил на крестах в кои то веки для души покодить. В итоге неделю крутил шланг формат как та мартышка с очками. То одно говно вылезет то другое. И все изкоробочные кодестайлы мне не нравятся.
guest6 05.11.2020 01:10 # 0
А у C и C++ на каждой платформе свой, угу. Но удивительно: resharper поставляется с вполне внятным кодстайлом, и сам мне всё исправляет
j123123 05.11.2020 01:14 # 0
Нет. В исходниках каждой хуйни - свои.
bormand 05.11.2020 01:15 # 0
guest6 05.11.2020 01:16 # 0
j123123 05.11.2020 01:13 # 0
Надеюсь, ты не проВенгерскуюНотацию?
guest6 05.11.2020 01:15 # 0
А в Win32API да. Все эти lp и dw
Кстати, пися на сях под винду я часто на них сру.
Я могу написать
DWORD iq
и потечь
Хотя должен вероятно dwIq
guest6 04.11.2020 22:48 # 0
https://m.habr.com/ru/company/vdsina/blog/515954/
[quote]
В C# есть такие штуки — структуры. Это как классы, но хранятся на стеке, и работают не по ссылке, а по значению. В среднестатистической разработке их почти не используют. У структур много преимуществ, и я искренне топил за то, что их можно применять для улучшения кода. Типа, смотрите, мы можем использовать особенности структур, чтобы писать более безопасный и отказоустойчивый код.
Такую чушь может сказать человек, который не знает, что у структур есть пустой конструктор по умолчанию, который нельзя ни убрать, ни переопределить. Знаете почему я этого не знал? Да, потому что я никогда их не использовал. Ведь хорошего разрабовского опыта у меня мизер. Я давно уже не хочу читать книжки про сишарп. Зачем, если мне и так платят?
[/quote]
Причем тут безопасность? И как бы твои сраные структуры копировались значению, если бы у них не было открытого конструктора? Копирующий конструктор бы делали, как в крестах? Или принимали бы все значенеия в конструкторе, как в датаклассах коклина?
>хранятся на стеке
видел структуру в куче, проверь) даже инт там видел
Fike 05.11.2020 00:16 # 0
Такую чушь может сказать только человек, который не знает, что у структуры пустого конструктора нет, и который не слышал про ключевое default. Так как структура это просто выделенный кусок адресного пространства, у которого не может быть специального значения (я говорю про возможность указателя быть null), то этот кусок просто зануляется при инициализации, и ничего, никогда и нихуя не вызывается. Нет, блядь, конструктора. Долбоёб, блядь. Мартин Алексеевич, покажите ему мое письмо от прошлого ноября.
guest6 05.11.2020 00:25 # 0
Fike 05.11.2020 01:12 # 0
https://sharplab.io/#v2:C4LghgzgtgNAJiA1AHwAICYCMBYAUKgZgAIM iBhIgbzyNqImACcBXAY2CIGUqa6+AhAPaCANgFMw AOyJgRABwAWYANy8+tAJaSOAIzHAVa9XEHMd4ogH MwUKIdx8AvkaOESAFiIBZABQBKHgd1WlRMAE5/VSDgzgBtAF0iADdZZjEIIgBeIkkxAHcuWMwANnio 4JDwyKM+UIiUkTSIP3KKuuro9W4tDWANWQ0ALzE4 LOTU9NiABjKaunaevoHhuBa52jIwOWBmRjEfPYAz IkX+kSGRtc7nTtcSj3Itnb2DsWPuI7E9yVYxAOpO rUqp9vr8rk48I4gA==
Fike 05.11.2020 01:12 # 0
https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.initobj?v iew=netcore-3.1
OpCodes.Initobj
Initializes each field of the value type at a specified address to a null reference or a 0 of the appropriate primitive type.
то самое зануление, чтобы мы случайно не подобрали предыдущие значения
Я хуй знает что это за call, но к структурам он явно не относится, там массив-то еще не создан.
Fike 05.11.2020 01:13 # 0
Здесь call - это создание массива. Можно конечно сказать, что там внутри вызываются конструкторы, но тогда мы должны увидеть такой же вызов ниже, где я вызываю new S()
Я не знаю, что за первый call, но во-первых он опционален, во-вторых такого адреса больше нет, а ниже, повторюсь, будет прямой вызов конструктора
call 0x064f3154 - боксинг структуры
Fike 05.11.2020 01:13 # 0
Два последовательных вызова через ref, первая структура точно инциализирована, вторая нет. Соответственно, между ними должен быть call на конструктор, которого нет.
уже второй опциональный вызов хуй пойми куда, но во-первых передача идет по рефу, во-вторых там даже ecx не инциализируется, в-третьих initialized должен был быть проинициализирован снаружи метода.
call 0x064f3154 - это еще один боксинг
а больше вызовов и нету
j123123 05.11.2020 09:59 # 0
guest6 05.11.2020 15:21 # 0
в шарпе есть value types и reference types.
Value types всегда создаются на стеке и копируются по значению.
Reference types создаются в куче, и работаешь с ними по ссылке
Но если у референс тайпа в поле лежит value type, то разумеется value type тоже окажется в куче.
Если поле статическое, то он окажется вероятно в статической области.
Но эти области -- они управляемые, не такие, как в нативном коде.
Структура это value type.
Class эт reference type.
bormand 05.11.2020 15:24 # 0
З.Ы. Хотя вот массив не хочет быть полноценным велью тайпом и не копируется :(
rotoeb 05.11.2020 15:26 # +1
guest6 05.11.2020 15:29 # 0
bormand 05.11.2020 15:58 # 0
guest6 05.11.2020 16:00 # 0
>в си ты сам выбираешь что и где хранить
но ни в шарпе, ни в жабе ты н можешь сделать массив на стеке же
bormand 05.11.2020 16:04 # 0
Какой анскилл )))
bormand 05.11.2020 16:43 # 0
MAPTbIwKA 05.11.2020 17:05 # 0
bormand 05.11.2020 17:16 # 0
MAPTbIwKA 05.11.2020 17:20 # +1
Если бы массивы были на стеке и передавались бы по значению (а не как в сишечке), то питух бы возвращал бы массив на гигабайт, и ныл бы, что всё тормозит
bormand 05.11.2020 17:26 # 0
MAPTbIwKA 05.11.2020 17:28 # 0
В общем array это reference type, а следовательно ведет себя как обычный объект, и ничем от него не отличается, как я понимаю.
Есть вот такой хак
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/stackalloc
но он unsfae, и по идее нужен только для магии
алсо, In expression stackalloc T[E], T must be an unmanaged type
то есть всякие оьъекты там быть не могут
Fike 05.11.2020 20:40 # 0
https://docs.microsoft.com/en-us/dotnet/api/system.span-1?view=netcore-3.1
upd: а не, там тоже стакаллок неужен. ну и нахуя тогда (((
еще есть какие-то pinned-референсы, которые хранятся в куче, но гц их избегает, какая-то промежуточная хуйня
j123123 05.11.2020 20:40 # 0
В шарпе можно: https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/stackalloc
А вот в Java действительно никак (хотя я б не давал 100% гарантию, может через sun.misc.Unsafe что-то можно сделать)
MAPTbIwKA 05.11.2020 20:46 # 0
* это убдет unsafe
* ты не можешь хранить в нем объекты: только валуе тайпы
https://govnokod.ru/27085#comment592699
j123123 05.11.2020 20:52 # 0
А в шарпе разве нельзя сделать какую-то такую хуйню:
?
MAPTbIwKA 05.11.2020 20:57 # 0
В C# (во всяком случае без ансейфоф) так сделать нельзя. Чтобы получить ссылку(указатель) на валуе тайп (а структура это валуе тайп) , ты должен его бокснуть.
А Boxing is used to store value types in the garbage-collected heap.
Есть всякие урезанности типа ключ слвоа ref, но это только для передачи в функцию
j123123 05.11.2020 21:02 # 0
MAPTbIwKA 05.11.2020 21:04 # 0
j123123 05.11.2020 21:13 # 0
Есть такая вот хуйня для интертопа с сишкой (с сишными структурами, если точнее).
Наверняка указатель на такую поебень можно кастануть в адрес на стеке, выделенный через stackalloc
https://habr.com/ru/post/428676/ - вот еще нагуглил.
MAPTbIwKA 05.11.2020 21:16 # 0
кста
а есть генератор этх StructLayout по .h файлам? или нужно вручную аккуратно всё переписать с одного языка на другой?
j123123 05.11.2020 21:21 # 0
https://stackoverflow.com/questions/2517557/
https://github.com/mono/CppSharp
MAPTbIwKA 05.11.2020 21:34 # 0
именно потому я за С++
У винды это раньше решалось COMом, атеперь WinRT: https://docs.microsoft.com/en-us/uwp/winrt-cref/winmd-files
Но это конечно для высокоуровневного кода на крестах, Win32API так не обернешь автоматом
j123123 05.11.2020 21:44 # 0
Наверняка такие говноврапперы уже кем-то написаны. Но нахуя вообще из шарпа ебаться с winapi? Кто-то сейчас что-то серьезное пилит на голом winapi? Может еще нативные сисколлы винды из шарпа надо подергать?
MAPTbIwKA 05.11.2020 22:00 # 0
Нативные сисколы винды никогда не нужно дергать: это вроде не стабильынй ABI, не как в Linux.
j123123 05.11.2020 21:52 # 0
Если у тебя есть бинарная либа, скомпилированная крестокомпилятором X, и соглашение вызовов в том компиляторе X не совпадает с тем компилятором, которым ты компилируешь какую-то хуйню, использующую эту либу, тебе тоже надо будет ебаться со всяким говном. Как минимум, делать какие-то переходники на ассемблере (или встроенными фичами какого-то компилятора).
А что будешь делать, если какая-то там либа скомпилированная хуйпойми каким компилятором возвращает указатель на какой-нибудь std::map или еще какое-то говно из какой-то там блядь древней версии STL (типа stlport) и тебе это говно надо юзать из визуалстудии?
MAPTbIwKA 05.11.2020 21:58 # 0
Я о том, что в С++ я могу подключить .h файл со struct, и течь
j123123 05.11.2020 22:01 # 0
Это только если layout структур (размеры типов, выравнивания всякого говна) совпадает.
MAPTbIwKA 05.11.2020 22:03 # 0
Именно потому винда явно указывает call convention, например.
И размеры типов не просто int там или long, а явный размер указан.
Ну то есть сигнатура
совершенно не дает однозначный abi, если ты не знаешь компилятора и платформы же
j123123 05.11.2020 22:10 # 0
В сишечке же всё намного проще. Там всякая хуйня работает просто: память, там указатели, выделение хуйни на хипе и какая-то там ебля с этой памятью. А в крестах какой-то ебаный пиздец со всякими контейнерами, конструкторами-деструкторами, наследованием, таблицами виртуальных методов, исключениями и еще хуй пойми чем.
guest6 05.11.2020 22:12 # 0
MAPTbIwKA 05.11.2020 22:15 # 0
именно потому я за extern "C"
Fike 05.11.2020 23:12 # 0
guest6 05.11.2020 23:26 # 0
guest6 05.11.2020 23:27 # 0
Какой бароп.
guest6 05.11.2020 23:30 # 0
Personally, I would ignore the UNION all together and implement Killroy and Fubar as separate fields
Using a UNION saves 32 bits of memory allocated by the int....not going to make or break an app these days.
Блядь, это как "Конардо" советует арендовать сервер дороже.
Fike 06.11.2020 00:40 # 0
С точки зрения getting things done это в целом правильный подход. С точки зрения перфекциониста надо сделать один инт и потом кастовать его туда-сюда, но это чревато проблемами при работе анскилябров с этим подходом, да и это же время может быть вложено в более полезное русло.
j123123 05.11.2020 23:36 # 0
...
> Note that this will work only if the types involved are primitive types (like int and float). Once objects are involved, it won't let you.
Ну и хуйня.
Fike 06.11.2020 00:38 # 0
j123123 06.11.2020 00:48 # 0
Fike 06.11.2020 00:50 # 0
а на раст потому что он как раз всё делает через жопу т.е. ансейф, нет?
и нахуй нужен язык, который не следует своей же конвенции?
j123123 06.11.2020 00:59 # 0
Fike 06.11.2020 01:02 # 0
j123123 06.11.2020 01:07 # 0
Чтоб работать с какой-нибудь сишколибой, где такая хрень есть.
Fike 06.11.2020 01:10 # 0
j123123 06.11.2020 01:20 # 0
Fike 06.11.2020 01:24 # 0
И, опять же, зачем передавать в стороннюю либу, с которой идет интероп, что-либо кроме непосредственно данных (т.е. value type + массивы char)?
j123123 06.11.2020 01:33 # 0
Мне плюсы нахуй не надо. Много вещей, которые делаются на крестах, можно было б и на шарпе делать, да. У плюсов с оптимизацией получше, и их как-то еще можно упихать в мелкоконтроллеры, если пообрезать всё дерьмо, а шарп без GC вообще не жилец.
> И, опять же, зачем передавать в стороннюю либу, с которой идет интероп, что-либо кроме непосредственно данных (т.е. value type + массивы char)?
Не очень понимаю вопрос. Я вполне могу представить себе ситуацию, когда в стороннюю либу надо передать выделенный на хипе кусок памяти какого-то размера, эта функция в сторонней либе чето с этой памятью делает (пишет-читает оттуда данные, вычисляет чето) и потом уже из сишарпа можно разгребать эти байтики из того куска памяти, который мы в ту функцию передавали.
Fike 06.11.2020 01:43 # 0
Да камон, опять аот априори лучше жита? ну нихуя ж не так, зависит от случая к случаю
> и их как-то еще можно упихать в мелкоконтроллеры, если пообрезать всё дерьмо, а шарп без GC вообще не жилец.
Да ну камон! Обрезается как нехуй.
https://medium.com/@MStrehovsky/building-a-self-contained-game-in-c-under-8-kilobytes-74c3cf60ea04
> CoreRT comes with libraries that make CoreRT look like any other .NET runtime: there’s a library that adds GC, library that adds support for reflection, library that adds a JIT, library that adds an interpreter, etc. But all of those libraries are optional (and that includes the GC).
> Не очень понимаю вопрос. Я вполне могу представить себе ситуацию, когда в стороннюю либу надо передать выделенный на хипе кусок памяти какого-то размера, эта функция в сторонней либе чето с этой памятью делает (пишет-читает оттуда данные, вычисляет чето) и потом уже из сишарпа можно разгребать эти байтики из того куска памяти, который мы в ту функцию передавали.
и поинтеры туда передаются без проблем, но нахуя повторять маршалинг и анмаршалинг в двух разных языках? почему либа не сама а) выделяет хип и б) не предоставляет апи, которое будет возвращать человеческие данные из этого хипа?
j123123 06.11.2020 01:59 # 0
Можно использовать profile-guided optimization. На контроллере у тебя тупо нет ресурсов, чтоб туда этот JIT пихать.
> Да ну камон! Обрезается как нехуй.
8 килобайт флеша по меркам некоторых контроллеров это более чем дохуя. Ну и еще там надо смотреть, сколько оно потребляет оперативы в процессе работы. Да, можно найти жирные микроконтроллеры, на которых этот шарп будет работать (.net micro framework), но это обычно нахрен не надо.
https://habr.com/ru/post/387333/ из комментариев
> Да, это сложно. Чтобы писать нормально на .Net Micro Framework нужно ставить внешнюю RAM и FLASH.
> Но это все вполне работоспособно. Я знаю успешный коммерческий проект, сделанный на этой технологии.
Ну т.е. купить сильно более дорогой контроллер, доставить туда еще внешней памяти, и вот тогда-то оно заработает по-человечески. Зато сэкономили на программистах.
> и поинтеры туда передаются без проблем, но нахуя повторять маршалинг и анмаршалинг в двух разных языках? почему либа не сама а) выделяет хип и б) не предоставляет апи, которое будет возвращать человеческие данные из этого хипа?
Ну а хуй знает, может авторы либы так решили запилить, исходников либы может не быть т.к. она проприетарная. А еще можно какую-то прослойку между этой либой и сишарпом сделать, которая будет более удобный вариант API предоставлять.
Fike 06.11.2020 02:07 # 0
Мы говорим про интероп шарпа и плюсов. Если нет ресурсов использовать шарп, то какой интероп?
Сколько надо ебаться с PGO, а сколько с джитом? А то что он по факту там делает АОТ, который наверняка пролетает через версию того же майкрософтовского компилятора, что и майкрософтовские плюсы, не играет роли? Как у тебя PGO поможет с удалением чистой функции, если в одном инстансе в нее всегда приходит значение 1, а в другом - значение 2?
> 8 килобайт флеша по меркам некоторых контроллеров это более чем дохуя. Ну и еще там надо смотреть, сколько оно потребляет оперативы в процессе работы.
Он же не аллоцирует там вообще нихуя, всё на стеке.
> Ну а хуй знает, может авторы либы так решили запилить, исходников либы может не быть т.к. она проприетарная. А еще можно какую-то прослойку между этой либой и сишарпом сделать, которая будет более удобный вариант API предоставлять.
Если либу сделали пидарасы, то это проблема не шарпа, и наличие плюсов никак не уменьшит количество ебли.
bormand 06.11.2020 02:12 # 0
Совсем поехали уже жида в реалтайм железки пихать...
Fike 06.11.2020 02:14 # 0
bormand 06.11.2020 02:18 # 0
guest6 06.11.2020 02:21 # 0
если у меня тяжелый конструктор, то один компилятор может преминить оптимизации и вызвать конструктор меньшее кол-во раз. Всякие там RVO, move (которого нет в старых компиляторах), создание объекта прямо там, где нужно, без копирования итд
Но я согласен, что "воткнуться вдруг иногда на пол секунды по причине GC" кресты не могут
bormand 06.11.2020 02:23 # 0
guest6 06.11.2020 02:30 # 0
Даже минорные гц -- не лучшая в мире вещь, когда их много
Fike 06.11.2020 02:23 # 0
guest6 06.11.2020 02:25 # 0
bormand 06.11.2020 02:29 # 0
guest6 06.11.2020 02:32 # 0
Fike 06.11.2020 02:32 # 0
guest6 06.11.2020 02:34 # 0
В языках с RC (а современные кресты именно оно) памтяь у тебя или выделяется/удаляется вообще бесплатно (на стеке) или делает это детерминированно в момент освобождения объекта
Ситуации "раз в пять минут все чего-то тупит" там не должно быть
guest6 06.11.2020 02:18 # 0
Я могу в легкую засрать кучу классами из двух интов.
Пока Джит поймет, что они не нужны, и заменит из на воьсмибайтовую хуйню, и начнет передавать ее через стек у меня уже GC три раза воткнет.
А в крестах у меня всё предсказуемо, не говоря уже о том, что нет каких-то левых потоков с джитом.
Другой вопрос, что для энтерпрайза это явялестя проблемой чуть менее, чем никогда.
А вот для железок или игр очень важно.
Fike 06.11.2020 02:20 # 0
но вообще вся история про мимоконтроллеры началась с того, что иного кейса для преимущества плюсов над шарпом нет. правда, не очень понятно и почему там не стоит писать на обычной сишке.
guest6 06.11.2020 02:24 # 0
* шаблонах
* отсутствии GC
* бесплатным интеропом с сями
>на обычной сишке
хочу decltype, RAII, шаьблоны, лол
bormand 06.11.2020 02:25 # 0
guest6 06.11.2020 02:29 # 0
Fike 06.11.2020 02:25 # 0
guest6 06.11.2020 02:29 # 0
в шарпе чуть лучше, но и там генерики не тюрингполные и передаваемый аргумент нормально не проверить, и не сделать разные реализации в зависимости от него
Алсо, все генерики с объектами всегда раскрываются в одно и тоже, и хранят объект на куче, именя на него ссылку, но это уже проблемы шарпа, а не генериков
Fike 06.11.2020 02:36 # 0
пиздец. пиздец. пиздец.
ОТКУДА вы это тащите? мы говорим про интероп шарпа с си-лайк коллинг конвеншн. При чем тут джава? Зачем вы постоянно притаскиваете не имеющее отношения к теме дерьмо? Зачем? Зачем? Зачем?
> в шарпе чуть лучше, но и там генерики не тюрингполные и передаваемый аргумент нормально не проверить, и не сделать разные реализации в зависимости от него
что значит не сделать разные реализации? where T : struct | where T : class | where T : InterfaceABC по-твоему не существует что ли?
guest6 06.11.2020 02:39 # 0
Приведи мне пожалуйста код, который ведет себя по разному в зависимости от типа, которым параметризован.
Например, имеет разные методы.
Разумеется, все это должно делаться в компайл тайме
Вполне возможно, я не умею этого делать в шарпе: я не щарпей
Tmeplate specialization или как оно там
Fike 06.11.2020 03:05 # 0
блядва на такое не ругнется даже при её тайп эрейже - она при компиляции на основе типа выберет нужный оверлоад и впишет его в байткод.
guest6 06.11.2020 03:53 # 0
Fike 06.11.2020 10:28 # 0
guest6 06.11.2020 11:10 # 0
чтобы делать разый код в зависимости от типа в компайл тайме, или например как в auto_ptr (изивините за упоминание его на людях. крестовики, заткните уши)
Specialization for type void is provided, it declares the typedef element_type, but no member functions.
Fike 06.11.2020 11:19 # 0
guest6 06.11.2020 10:34 # 0
а переопределения для него
И какие угодно кобенации.
?
Fike 06.11.2020 10:43 # 0
guest6 06.11.2020 10:48 # 0
Fike 06.11.2020 10:54 # 0
Но никто не запрещает тебе сделать class X : Transformer<int, int>, Transformer<string, int> и имплементировать два метода. Я не удивлюсь, если он даже с X : Transformer<int, int>, Transformer<object, object> разберется и вызовет правильный метожд.
guest6 06.11.2020 11:11 # 0
требуется больше классов))
Fike 06.11.2020 11:20 # 0
Fike 06.11.2020 11:06 # 0
> X.Log(1, 2);
both ints
> X.Log("test", 2);
second int
> X.Log("test", "test");
both parameters
>
j123123 06.11.2020 02:28 # 0
Ну так-то да, тогда шарп нафиг не нужен.
> Сколько надо ебаться с PGO, а сколько с джитом?
Зависит от задачи. Иногда JIT просто не подходит. В какой-нибудь HotSpot JVM оно при каждом запуске будет с нуля разогреваться и поначалу тормозить (кстати, а можно ли как-нибудь сохранить "разогретое" состояние?), а предварительно скомпилированная через PGO (как бы статически сохраненное разогретое состояние, по которому код один раз заоптимизировали, и больше не трогаем) сразу работает ровно, хотя если поменяется сценарий использования, оно не перекомпилирует само себя в рантайме.
> Как у тебя PGO поможет с удалением чистой функции, если в одном инстансе в нее всегда приходит значение 1, а в другом - значение 2?
Да это всё понятно, иногда это лучше через JIT делать, а иногда через PGO. Вообще, если используется PGO, компилятор теоретически в одном месте может заинлайнить функцию так, что вот "там-то скорее всего приходит вот это", а в другом "там-то скорее всего приходит вот это", но если это вдруг внезапно поменяется, это будет тормозить, и тогда JIT в этой ситуации уделывает PGO. "Что круче, JIT или PGO?" - это довольно сложный дискуссионный вопрос, на который в общем случае ответить никак нельзя. В контроллерах, которыми я занимаюсь, какой-либо JIT использовать попросту неоправданно.
Вообще, то что ты тут пишешь (про динамическую рекомпиляцию на основе профилирования в рантайме) - это фишка HotSpot JVM, в дотнетовском рантайме нет всей этой сложной херни (хотя может мои знания устарели)
Fike 06.11.2020 02:37 # 0
1. Почему ты думаешь, что я этого не знаю?
2. На кой хуй тебе постоянно перезапускать жабу? Зачем ты берешь жабу и перезапускаешь её? Зачем? Зачем? Зачем ты это делаешь? Чтобы что? ЧТобы аргументировать потом руководству плюсы плюсов? А если ее не перезапускать? Ты пробовал её не перезапускать? Пробовал? Пробовал? Ну давай, признайся. Пробовал? Да нет, не пробовал.
> Вообще, то что ты тут пишешь (про динамическую рекомпиляцию на основе профилирования в рантайме) - это фишка HotSpot JVM, в дотнетовском рантайме нет всей этой сложной херни (хотя может мои знания устарели)
Tiered compilation уже завезли
j123123 06.11.2020 02:41 # 0
Ничего я не думаю. Я не могу точно знать, что ты знаешь, а чего нет.
> 2. На кой хуй тебе постоянно перезапускать жабу? Зачем ты берешь жабу и перезапускаешь её? Зачем? Зачем?
Потому что если я открываю какую-то говноIDE на жабе, она выжирает мне оперативную память, а мне память нужно под другую хуйню, и я закрываю жабу. Увы!
> Tiered compilation уже завезли
Ну и отлично.
Fike 06.11.2020 03:09 # 0
Fike 06.11.2020 03:13 # 0
guest6 06.11.2020 03:58 # 0
которым лучше никогда не пользоваться в 2020
bormand 06.11.2020 08:31 # 0
> в проге с gc
И пусть весь мир подождёт.
Fike 06.11.2020 10:26 # 0
j123123 06.11.2020 10:36 # 0
Fike 06.11.2020 10:44 # 0
если у вас есть проблема, она уже решена сигруппами
guest6 06.11.2020 02:42 # +1
Некоторые программы так работают: ты их запускаешь, оно что-то делают, и завершаются.
Слышал про такие?
Fike 06.11.2020 03:08 # 0
про такие, чтобы их надо было так часто перезапускать, чтобы прогрев был заметен на фоне времени выполнения и это вызывало какие-то серьезные финасовые потери - нет.
guest6 06.11.2020 03:58 # 0
Fike 06.11.2020 10:26 # 0
MediumGovno 01.08.2021 10:47 # 0
Fike 06.11.2020 01:15 # 0
https://docs.microsoft.com/en-us/cpp/dotnet/dotnet-programming-with-cpp-cli-visual-cpp?view=msvc-160
но я по-прежнему не понимаю зачем, потому что шарп позволяет писать практически всё тоже на самом шарпе, за исключением еботни с каким-нибудь unmanaged пулом памяти
Fike 06.11.2020 00:49 # 0
https://docs.microsoft.com/en-us/dotnet/framework/interop/marshaling-classes-structures-and-unions#unions-sample
и двойные указатели aka массив указателей
https://docs.microsoft.com/en-us/dotnet/framework/interop/marshaling-classes-structures-and-unions#outarrayofstructs-sample
и конечно нестеды без проблем, потому что один хуй плоское пространство
https://docs.microsoft.com/en-us/dotnet/framework/interop/marshaling-classes-structures-and-unions#findfile-sample
j123123 06.11.2020 01:04 # 0
Ну так а он умеет делать аналог
?
Аналогов такому я не увидел. Можно конечно оставить две структуры, и кастовать указатель или в такую структуру, или в сякую. Но при определенном уровне вложенности это уже будет неудобно (если там юнион двух структур, в структурах есть юнион тоже, и так далее). Можно конечно решать какими-то кастами в хуйню по таким-то смещениям, нагенерить это на основе типа, но это дополнительные телодвижения и сложности.
Fike 06.11.2020 01:09 # 0
j123123 06.11.2020 01:18 # 0
А если {union { struct {int, float}, struct {float, int}}} - тут-то я сначала выбираю, смотрю ли я на это как на "cначала int потом float" или наоборот.
Но можно придумать более упоротый пример, с полями разных размеров, которые еще частично перекрываются. Например:
И юнион из них.
Fike 05.11.2020 20:46 # 0
разве что написать через него better c и управлять памятью напрямую
j123123 05.11.2020 20:31 # 0
Если сделать массив известного размера внутри типа структуры, тогда будет велью тайп и всё там будет копироваться.
MAPTbIwKA 05.11.2020 20:32 # 0
отож
Вообще адский багор, конечно. Зачем так сделали? Зачем? Зачем? Сколько багров словили нубы передавая и возвращая массивы
defecate-plusplus 05.11.2020 20:38 # 0
j123123 05.11.2020 20:46 # 0
Чтоб нубы поняли суть адресной арифметики. Что ptr[val], val[ptr], *(ptr+val), *(val+ptr) это та же самая хуйня. Вообще, настоящих массивов (как в паскале) в Си нет.
guest6 04.11.2020 23:01 # 0
https://i.postimg.cc/762vqL77/gafnpo.png
guest6 04.11.2020 23:12 # +1
Я могу зафигачить целое приложение за месяц. Например, на последней работе я сделал прототип проекта за сутки — и это 60% всей работы, нужной для выхода на рынок. Но когда я начинаю делать пет-проект, мне сразу хочется все обсерьезить. Мы с пацанами создаем жиру, рубим все на спринты, заводим тикеты, настраиваем CI. Потому что со всеми этими церемониальными вещами пет-проект становится чем-то очень настоящим.
[/quote]
https://m.habr.com/ru/company/vdsina/blog/516970/
Именно по этому Филипп за "ротоёб"
bormand 05.11.2020 00:01 # 0
j123123 05.11.2020 01:04 # +1
Я под микроконтроллеры пишу без всяких жир и тикетов.
guest6 05.11.2020 01:11 # 0
j123123 05.11.2020 01:22 # 0
guest6 05.11.2020 01:28 # 0
в ишьюс в гитхаб?
j123123 05.11.2020 01:31 # 0
guest6 05.11.2020 01:33 # 0
так что почта не оч канает
j123123 05.11.2020 01:09 # 0
Совершенно очевидно, что он пишет какую-то типичную бекенд-фронтенд питушню, у меня такой хуйни нет
guest6 05.11.2020 01:12 # 0
В энтерпрайзе проекты живут годами иногда
j123123 05.11.2020 01:26 # 0
Нет, прошивку под хуйню тоже теоретически можно пилить годами, можно дополнять там что-то и выпускать новую версию прошивки с немного другими опциями в менюшке для хуйни. Но под это хватает банального гитлаба или гитхаба с его issue-ами. Сложной хуйни как в Jira - не надо.
guest6 05.11.2020 01:28 # 0
Так та же джира по сути)
Просто джира была 15 лет назад, а гитхаба не было.
Алсо, джира позволяет писать свои воркфлоу, но обычно это нужно когда у тебя сложный бизнесс процесс, и 20 разработчиков, Да и писать их на джаве -- то еще удовольствиие
j123123 05.11.2020 01:30 # 0
guest6 05.11.2020 01:32 # 0
но в целом я согласен, что джира это перепетушня даже по меркам интерпрайза
bormand 05.11.2020 01:35 # 0
Не думаю, что тебе хотелось бы видеть баги и задачи для сотни других чуваков, которых ты даже не знаешь.
j123123 05.11.2020 01:35 # 0
https://bugs.llvm.org/
https://gcc.gnu.org/bugzilla/
И я б не назвал эти "проекты" простыми и маленькими
guest6 05.11.2020 01:43 # 0
Кроме того, административно эти проекты проще, чем энтерпрайз.
У них не прибегает заказчик с 20ю хотелками в день, и не спрашивает через неделю об эстимейтах
j123123 05.11.2020 01:54 # 0
Да, может для какой-то хуйни вся эта питушня с аджайлами действительно нужна, но не в моей области.
guest6 05.11.2020 01:59 # 0
но Атсассиан это часть интерпрайз культуры: 15 лет назад не было гитхаба, и макаки на галерах всегда ставили jira и конфлюенс (ужасно тяжелый wiki) и написали кучу расширений (каждое по 24 класса на джаве, как ты понимаешь), и уже привыкли
Тебе какой-нить Team Foundation Server тоже наверное в страшном сне не приснится, а кому-то он нужен
bormand 05.11.2020 02:11 # 0
Банально для себя пометить что хотелось бы пофиксить на этой неделе, а что потерпит.
Не обязательно же там все эти цифры проставлять и в покер играться.
guest6 05.11.2020 02:20 # 0
Канбан отвечает на два вопроса:
* сколько задач сейчас в какой стадии
* где у тебя боттлнек (QA, DEV, deploy итд)
Это такой микрофреймворк (в отличие от скрам и всяких рупов). Его идеология такова: ценность имеют только законченные фичи. Если ты хуячил три недели, и все фичи висят в QA, то с точки зрения заказчика ты ничего за 3 недели не сделал, и тратишь деньги. Или нанимай больше QA, или увольняй разрабов)
guest6 05.11.2020 08:30 # 0
guest6 05.11.2020 15:51 # 0
bootcamp_dropout 05.11.2020 15:53 # 0
Так вот почему стали работать без qa
guest6 05.11.2020 15:56 # 0
guest6 05.11.2020 01:48 # 0
багзила и интерпрайз (канбан -- сорт аджайла)
https://github.com/leif81/bzkanban
bormand 05.11.2020 01:49 # 0
Я имею свой канбан
Я на нём аджайл хуярю
Не найти во мне изъян
guest6 05.11.2020 01:53 # +1
Фичи, борды, ки пи ай
Ай, ну и няхай
Fike 05.11.2020 01:37 # 0
это тебе как разрабу так кажется. а если у тебя департамент с семью проектами в управлении, то хуй ты сможешь понять в каком они состоянии, где зависимости, на какие вещи надо подписаться, и где баги, которые должны быть решены вот вчера и по ним надо каждые полчаса спрашивать "ну как там", чтобы девелопер не начал строить самолет.
guest6 05.11.2020 01:42 # 0
Я прекрасно знаю чем пахнет интерпрайз, и зачем придумали сложные воркфлоу в jira и зачем нужен скрам))
И кстати регулярно вижу чуваков, которые говорят "я пишу драйверы под линукс, и не понимаю зачем пидарасы придумали какие-то скрамы, BDD и прочих бизнес-аналитиков", лол)
guest6 05.11.2020 02:25 # +1
Это заставляет меня делать не const все мои методы, которые их вызывают, и передают туда поля. И сами поля тоже не могу сделать const.
Могу взять static_const, но сцу: а вдруг там правда что-то не const?
Хотя если питухи получают указатель на RECT (структура о четырех интах такая), и по ней что-то рисуют, то ведь стопудово не меняют её..
Как быть?[/mode]
bormand 05.11.2020 02:26 # 0
З.Ы. В винапи реально есть функции, которые срут в аргумент. Тот же CreateProcessW.
guest6 05.11.2020 02:34 # 0
Из за этого мне пришлось снять const c поля и сделать его приватным (чтобы не насрать снаружи) и логику перенести внутрь класса (так как снаружи никто не мог поле видеть, а френдов я ебал)
Дока по апи кажется что 2001-го года, и про конст там нет. На другом языке я бы попробовал конст ксат, и посмотрел бы -- не упадет-ли, но c таким подходом я точно не стану крестобялдью
bormand 05.11.2020 02:41 # 0
Если оно реально срёт, то оно тебе испортит поле. Тут только копию подсовывать, как тому же CreateProcessW.
Если оно не срёт - то const cast прям в вызове чтобы явно показать, что ты зовёшь легаси хуйню и она не срёт.
Обычно в доке явно пишут куда функция срёт. Если нет доки и уверенности - выбрось нахуй такое апи, поищи что-то более свежее.
guest6 05.11.2020 03:57 # 0
> более свежее.
Я некрофилю принципиально, из спортивного интереса.
Поел только что смешного говна:
Есть COM интерфейс. Комы когда создаются (CoCreateInstance), у них счетчик равен 1. При копировании нужно делать AddRef, при удалении -- Release(). Последний релиз удаляет ком.
Есть функция в API, которая получает указатель на COM, и заполняет его его свежим комом.
Я обернул ком CComPtr, который умный поинтер для комов, и сунул ему в конструктор сырой поинтер, свежезаполненный.
Когда CComPtr умер -- COM не умер!
Думаю: что за хуйня?
Оказывается,
[msdn]
The constructors that take an argument call AddRef on lp, if it isn't a null pointer.
[/msdn]
То есть этот питух вызвал AddRef у уже живого COMа, при смерти вызвал Release, остался понитер равен 1.
Тогда я создал сразу CComPtr<IMyComInterface>, сунул его адрес в ту функцию, и она заполнила его значением (у него оператор присваиваня перегружен и AddRef он не делает) и всё стало заебись.
Может быть приучусь читать доки)
bormand 05.11.2020 08:12 # 0
Оператор присваивания таки делает AddRef. Здесь у тебя сработал оператор "взятия адреса", который вернул адрес сырого внутреннего поинтера.
guest6 05.11.2020 15:04 # 0
bormand 05.11.2020 15:21 # 0
guest6 05.11.2020 15:24 # 0
guest6 05.11.2020 15:35 # 0
class Petuh:Foo<Petuh>
bormand 05.11.2020 15:37 # 0
Крестовые миксины.
bormand 05.11.2020 02:53 # 0
j123123 05.11.2020 03:07 # 0
Можешь еще дизассемблировать хуйню и посмотреть, не срет ли оно туда.
Кстати, это одна из причин, почему я за опенсорс
bormand 05.11.2020 03:10 # 0
guest6 05.11.2020 03:58 # 0
guest6 05.11.2020 04:24 # 0
https://www.quora.com/Why-do-front-end-developers-make-significantly-less-than-back-end-software-engineers
bootcamp_dropout 05.11.2020 04:29 # 0
guest6 05.11.2020 04:31 # 0
bootcamp_dropout 05.11.2020 04:37 # 0
guest6 05.11.2020 04:42 # 0
я не думаю, что пыхомакака богаче фронтера. Просто бекенд иногда бывает содержит всю логику, и она куда сложнее (ну типа поисковой машины гугла), но называть таких людей бекендом нельзя наверное
Fike 05.11.2020 04:31 # 0
РЯЯЯЯЯЯЯЯЯЯЯ РЯЯЯЯЯ ДА МЫ НЕ ХУЖЕ ДА НЕТ ЖЕ НАМ ПЛАТЯТ БОЛЬШЕ [size=smaller than your achievement list]но только если ты гений и что-то забыл в этой профессии, да и сравнивают тебя со среднестатической макакой[/size] РЯЯЯЯЯ РЯЯЯЯ ЯРРЯРЯРЯРЯРЯРЯРЯРРЯРЯ
хаааахахахах
guest6 05.11.2020 05:23 # 0
https://sun9-71.userapi.com/c855332/v855332717/6243a/IrqYIeBK9j4.jpg