Vai jūsu projektā visi risinājumi un procesi ir dokumentēti un standartizēti?
Java
Kādās situācijās un kādos apstākļos var notikt datu zudumi Kafka?
Kas ietek laika izmaksas, pievienojot elementu pievienotā saraksta beigās?
Kāda ir laika sarežģītība elementa ievietošanai saistītajā sarakstā vidū, ja jums jau ir pilns masīvs?
Vai jūs varat izskaidrot, kas ir Gson un kā tas darbojas ar laukiem serializācijas un deserializācijas laikā?
Kādā serverī vai platformā tika veikta lietojumprogrammas izvietošana?
Kādi problēmas var rasties, ja maināt kolekciju tās pārvietošanas laikā?
Vai Java valodā jau aizvērtiem datu plūsmām (Streams) ir iespējams vēlreiz izmantot?
Kādas potenciālas grūtības un ierobežojumi var rasties, izmantojot Kafka sistēmās?
Vai jums ir pieredze ar Spring ietvara izmantošanu lietojumprogrammu izstrādē?
Cik grūti ir palielināt ArrayList izmēru, pievienojot katru 1000 elementu?
Kādas komponentes ietver Kafka arhitektūra un kā tās savstarpēji sadarbojas?
Kā mērīt datu darba efektivitāti un uz ko tas ietekmē?
Kā tiek novērtēta elementa ievietošanas operācija divvirzienu saraksta centrālo daļu pēc sarežģītības?
Kādās situācijās ir vēlams izmantot datu struktūru LinkedList, nevis citas kolekcijas?
Kas jūs motivē apsvērt iespēju mainīt pašreizējo projektu?
Vai vari nosaukt divus metožu veidus, kas tiek izmantoti Stream API?
Veiciet līdzekļu pārskaitījumu starp divām kontiem. Ņemiet vērā, ka šis ir ražošanas risinājums Ievades parametri: @param fromAccountId unikāls lietotāja identifikators, kurš veic līdzekļu pārskaitījumu @param toAccountId unikāls lietotāja identifikators, kuram tiek pārskaitīti līdzekļi @param amount pārskaitījuma summa. Pozitīvs skaitlis public void transferMoney(Long fromAccountId, Long toAccountId, BigDecimal amount) { if (amount.compareTo(BigDecimal.ZERO) <= 0) { throw new RuntimeException("Summa jābūt > 0"); } if (fromAccountId.equals(toAccountId)) { throw new RuntimeException("Konts nevar būt tas pats"); } Long firstId = Math.min(fromAccountId, toAccountId); Long secondId = Math.max(fromAccountId, toAccountId); Account first = accountRepository.findByIdForUpdate(firstId) .orElseThrow(() -> new RuntimeException("Konts nav atrasts")); Account second = accountRepository.findByIdForUpdate(secondId) .orElseThrow(() -> new RuntimeException("Konts nav atrasts")); Account from = fromAccountId.equals(firstId) ? first : second; Account to = fromAccountId.equals(firstId) ? second : first; if (from.getBalance().compareTo(amount) < 0) { throw new RuntimeException("Nepietiekams bilance"); } from.setBalance(from.getBalance().subtract(amount)); to.setBalance(to.getBalance().add(amount)); accountRepository.save(to); accountRepository.save(from); }