Похожие чаты

I'M far from an expert in baking systems, and I've

learned not look down on domain knowledge — building a system that can actually be used always requires much more effort compared to my intuition.

I have a few "simple" questions, after roughly examine the requirements.

1. Interest and minimum balance may change. How to prepare for the change? Is it worthwhile to simply put it a constant, at the cost of recompiling? Or provide a universal configuration interface?
2. I don't think a fixed type of accounts works in the long run. How to prepare for the change of "account types"?

From the perspective of low level things, many things should also be considered.

1. If the class is placed in a shared library, the "account type" change may break the binary compatibility. How to design the classes to minimize the cost of change? Is it worthwhile?
2. How to store balances? Floating point numbers surely won't work, but fixed point numbers are also tricky. Is the assumption that "two places after decimal point" correct in this scenario? Should the balance be signed? How to handle the overflow correctly? How to compute the interest if the data type is a fixed point number?
3. How to ensure the atomicity of operations? At which level should the enforcement be placed?

I can easily write more questions if I dig deeper. I won't write more, because the examples are enough to show my point:

Homework is simplified version of real-world problems. For a real-world banking system, the business logic is too complex that rarely a single person can comprehend. The homework only shows the tip of the iceberg, but the underwater part is usually what technical and design decisions depend on.

If you just treat homework as homework, not much can you learn from it. I think setting the bar low is not the optimal attitude — just write some silly code, who can't?

2 ответов

2 просмотра

ok, what about product requirments?

It doesn't have to actually be able to be used, it's homework

Похожие вопросы

Обсуждают сегодня

Ясн. Но я всеравно к кедам отношусь с опасением. Чисто субьективное кедосозерцание. Что касаемо "восторга изяшности кед" так и не вкурил, хотя много слышал, пока не поставил с...
Артем Записной
30
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
They keep hyping $FUN but where's the progress? 🙄
Noah Noure
23
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
Btw guys very stupid question but i haven't researchd so js asking you pros . Can ltc be traced too? Literally point to pint to the user? And getting the banks blocked ? Exch...
20
А чем вам питонисты не угодили?😂
.
79
Hey guys, did you see the new announcement about $Fun? 🔥
Filip Murphy
55
How can a minority hashrate chain defend from a fork-hopping ASIC miner? The problem: 1. A miner comes into your network, and mines at 60-70% hashrate. 2. After some time, th...
Kishniev
13
yeap, thanks guys for response, but I really like to understand does a pool created on curve.fi has the option or api or I can call a function of a smart contract to set excha...
Oleg Karoza
11
Карта сайта