Wpis z mikrobloga

Hej!
Chciałbym w ramach nauki i samodoskonalenia napisać system bankowy za pomocą java + spring. Program będzie w 3 formach: Dla klienta w postaci strony internetowej, dla pracownika banku w postaci programu desktopowego, oraz w postaci programu mobilnego na androida. Podobno jest to najczęściej spotykany rodzaj oprogramowania jaki piszą programiści w firmach, więc mam nadzieję, ze będziecie w stanie mi pomóc.
Chciałbym się dowiedzieć jak wygląda taki transfer kasy między bankami, czy jest jakaś dokumentacja pozwalająca zapoznać się ze standardami oraz zmiennymi do tego wykorzystywanymi?
Jakie zabezpieczenia byście mi polecili? Bo wiadomo bank musi mieć najlepsze jakie się da, a zwykłe hashe czy md5 nie spisze się jak trzeba.
Czy są jakieś serwery udostępniające bramkę sms dla programu? Wiem, że M$ Azure coś takiego ma, ale nie jestem pewien, czy nie udostępnili tego wyłącznie dla C#.
Fajnie będzie jakbyście dodali jakieś inne ciekawe informacje na temat takiego projektu, swoje doświadczenia czy coś.
Z góry wielkie dzięki za pomoc!

#programowanie #java
  • 22
  • Odpowiedz
@Lunder: nie zrobisz tego. Przy stanie zaawansowania 20% tempo prac spadnie o 90% i nie dojedziesz do 25% gotowego systemu.
Nie dlatego, że nie masz umiejętności tylko właśnie próbujesz zrobić super nudną rzecz tłumacząc sobie, że dzięki niej poznasz kilka fajnych smaczków.
  • Odpowiedz
@Lunder:

1. Rozbij ten projekt na części. Bardzo małe części. Realizuj każdą z nich małymi kroczkami. Masz do rozwiązania bardzo dużo problemów z wielu szerokich dziedzin (persystencja, bezpieczeństwo, webaplikacje, wymiana danych, api, różne środowiska…)
2. I wtedy wybierz sobie realne aspekty, do których chcesz podejść – bo to co napisałeś wyżej, to jest praca dla teamu profesjonalistów na kilka lat.
3. Funkcjonalności dobudowuj – zamiast walić od razy 3 platformy, skup się np najpierw na samej platformie webowej. Olej przelewy międzybankowe, załóż, że wymiana tylko między klientami,
  • Odpowiedz
@Pipcieo: Ja obstawiam, że dojdzie do tabeli klienci, zrobi logowanie i to będzie koniec :D
@Lunder: Powodzenia :D Mam nadzieję, że zdajesz sobie sprawę, że będąc użytkownikiem internetowego portalu banku poznałeś ok. 1% funkcjonalności takiego systemu i nawet nie jesteś w stanie zdefiniować wymagań biznesowych bo po prostu nie znasz dziedziny. Tak czy siak miłej zabawy :D
  • Odpowiedz
@Pipcieo: No niby racja, ale warto spróbować, jak się zrobi chociaż niektóre fragmenty to i tak będzie duży sukces.
@MacDada: Ok, powiedzmy, że ściągnę to tylko do webowej części dla klienta, tak czy inaczej te same problemy pozostają i mam z nimi problem ( ͡° ʖ̯ ͡°)
@Legol: No właśnie to największa przeszkoda dlatego chce się w nią wgłębić. Bo takie robienie
  • Odpowiedz
@Lunder: Tak jak powiedział @Legol – to, że akurat chcesz robić system bankowy oznacza, że musisz znać ich „domenę” – czyli taką bazową wiedzę w ogóle co robią banki, jakie osoby z nich korzystają (rodzaje pracowników), jakie Ci rodzaje pracowników mają uprawnienia, jak nalicza się stopy procentowe, itd. To jest właśnie „domena” / „dziedzina”.

Takie rzeczy ustalasz z klientem (bankiem), a właściwie z „domain expertem”. Zauważ, że pewne rzeczy będą uniwersalne „w dziedzinie bankowej” (jak właśnie obliczanie stóp procentowych), a inne będą indywidualne dla banku (np to czy bank nalicza opłaty za przelew, czy ma różne rodzaje kont dla użytkowników, czy np rozróżnia biznes od indywidualnych, etc).

Czyli w tej materii możesz sobie sam doczytać i wymyśleć „jakie
  • Odpowiedz
@Pipcieo: To te projekty open sourcowe do których można się przyłączać? ( ͡° ͜ʖ ͡°)
Opcja zajebista, ale na sam początek wolę zacząć samemu, by nikt na mnie nie musiał polegać, bo jednak może się okazać, że raz mam cały dzień na ćwiczenia, a drugi raz od poniedziałku do piątku jestem zajęty, wolę robić to w swoim tempie.
  • Odpowiedz
@Lunder: to są dostępne web serwisy do których możesz się podłączyć i wykonywać na nich określone operacje.
Idealna sprawa jeżeli chcesz się poznać jak wygląda wymiana danych, autoryzacja itp.

Po tym jak napisałeś:

Jakie zabezpieczenia byście mi polecili? Bo wiadomo bank musi mieć najlepsze jakie się da, a zwykłe hashe czy md5 nie spisze się jak trzeba.

naprawdę nie ma sensu rzucać się z motyką na słońce. Długa droga przez
  • Odpowiedz
Chciałbym się dowiedzieć jak wygląda taki transfer kasy między bankami, czy jest jakaś dokumentacja pozwalająca zapoznać się ze standardami oraz zmiennymi do tego wykorzystywanymi?


@Lunder: Polecam jakbyś miał kłopoty z zaśnięciem :D
  • Odpowiedz
Taki system pisany jest od środka, czyli od częsci serwerowej., która udostępnia odpowiednie interface'y. Zacznij od zrozumienia czym jest plan kont i ogólnie system rachunkowo-finansowy. I zacznij od napisania takiego moduły z możliwością definiowania operacji. Samo GUI w systemie bankowym to wykończenie - istotne, ale tylko wykończenie, najwięcej w takim systemie dzieje się wewnątrz.
  • Odpowiedz
@MacDada: rzeczy o których piszesz robi się na etapie konfiguracji dla banku systemu. Gdyż 1) Dobrze, by program nie był tylko dla jednego banku 2) w takim banku tez się różne rzeczy zmieniają albo ze względów wprowadzania nowych produktów, bądź też ze względów zmian w prawie.
  • Odpowiedz
@Kaczus2B: Jak już masz więcej niż jeden przypadek banku – to tak, możesz „uogólniać”, robić sobie „bankowy framework”, w którym takie rzeczy zmienne są konfigurowalne. Ale najpierw trzeba napisać co najmniej dwa, żeby wiedzieć, co faktycznie konfigurowalne być powinno ;-)
  • Odpowiedz
@MacDada pisanie kompletnego systemu bankowego to kilka lat pracy dużego zespołu. samodzielnie możesz sobie poćwiczyć właśnie tak jak to opisałem, zaczynając od wydajnego systemu rachunkowo-księgowego bo to jądro wszystkiego i najbardziej newralgiczna rzecz w systemu bankowym. I tu nie ma co uogólniać, bo to sa dość trudne tematy i pod względem skomplikowania i pod względem obciążenia, a możesz wierzyć, że wiem o czym piszę.
  • Odpowiedz
pisanie kompletnego systemu bankowego to kilka lat pracy dużego zespołu


@Kaczus2B: Dokladnie to pisałem wcześniej, więc wypowiedź skierowana raczej do @Lunder ;)

to jest praca dla teamu profesjonalistów na kilka lat.
  • Odpowiedz
@Lunder: Można wiedzieć dlaczego akurat bank? Przecież to okrutnie nudne i wiadomo, że sam tego nie ogarniesz. Nie lepiej wpaść na jakiś fajny pomysł i zrobić coś dla siebie przydatnego. Jakiś webservice + android? Np program do zarządzania pracownikami w firmie, do ustalania automatycznego grafiku + jakieś funkcjonalności dla pracowników, zawsze jak Ci wyjdzie będziesz mógł to sprzedać, a raczej systemu bankowego nie zrobisz i tylko się zniechęcisz.
  • Odpowiedz