export/import C++ <-> XML i nowe IDE w trybie znakowym

0

Dzień dobry,

Czy istnieje narzędzie, które przerobi mi kod programu C++ na XML i z powrotem?

np.

<class name="MojaKlasa" virtual="no"> <members> </members> </class>

itp.

Gdyby coś takiego bylo to można by napisać łatwo IDE w trybie tekstowym, działające tak jak te wszystkie DOS-owe programy do fakturowania.

Z menu programu wybieram "Klasy" albo wciskam Ctrl-K.

Pojawia się okienko z listą wszytkich klas.

Naciskam klawisz "Dopisz", albo Insert.

Pojawia się okienko edycyjne na nazwę klasy i checkbox, czy klasa ma być wirtualna.

Wpisuję nazwę "MojaKlasa", na Ctl-V przełączam checkbox wirtualności klasy

Pojawia się okienko MojaKlasa ze swoim menu.

Z menu wybieram "Metody" albo wciskam Ctrl-M

Dopisuję metodę Insertem.

I tak dalej, gdy dopisuję parametry metody, wtedy na F1 mam listę typów wbudowanych i zdefiniowanych przez użytkownika, które mogę filtrować na różne sposoby itd itp, oglądać daty modyfikacji klas, dołączone obrazki ze schematami blokowymi funkcji i metod itp.

Wszytkie obiekty programu - klasy, metody, zmienne, stałe, trzymam w bazie SQL. Jak chcę, to eksportuję wszystko z powrotem do XML, a z XML do C++ albo do C#, o ile semantyka programu pozwoli.

0

Napisałeś właśnie to co robi większość IDE. W Eclipse czy IntelliJ na ten przykład masz dokładnie przycisk "Dodaj klasę", który po wpisaniu nazwy klasy tworzy wszystkie pliki (AFAIK włącznie z testami) i odpowiednio wypełnione. Następnie masz różnego rodzaju snippety czy inne narzędzia do dodawania pól i metod do tak utworzonych obiektów.

Ba są narzędzia UML, które z narysowanego grafu zależności potrafią wygenerować Ci kod projektu, który dokładnie odpowiada podanemu schematowi.

TL;DR Nihil novi.

0
winerfresh napisał(a):

Napisałeś właśnie to co robi większość IDE. W Eclipse czy IntelliJ na ten przykład masz dokładnie przycisk "Dodaj klasę", który po wpisaniu nazwy klasy tworzy wszystkie pliki (AFAIK włącznie z testami) i odpowiednio wypełnione. Następnie masz różnego rodzaju snippety czy inne narzędzia do dodawania pól i metod do tak utworzonych obiektów.

Ba są narzędzia UML, które z narysowanego grafu zależności potrafią wygenerować Ci kod projektu, który dokładnie odpowiada podanemu schematowi.

TL;DR Nihil novi.

A mogę posortować listę klas po dacie i osobie, która dokonała modyfikacji?
Mogę listę swoich klas ułożyc w drzewko wg tematów, których dotyczą?
Mam pod ręką te rysunki / filmiki ze schematami algorytmów?

0
Irek Szpilewski napisał(a):

A mogę posortować listę klas po dacie i osobie, która dokonała modyfikacji?

Od tego masz system kontroli wersji. Odpal sobie git-blame i zobacz co tam masz.

Mogę listę swoich klas ułożyc w drzewko wg tematów, których dotyczą?

Tak, to się nazywa drzewo plików i jeśli jeszcze tego nie używasz, to wolę nie wiedzieć jak wyglądają twoje projekty.

Mam pod ręką te rysunki / filmiki ze schematami algorytmów?

Jeśli je sobie zapisałeś to tak. Poza tym IDE mają coś takiego jak "outline", które zawiera listę klas i metod w nich zawartych.

0
winerfresh napisał(a):
Irek Szpilewski napisał(a):

A mogę posortować listę klas po dacie i osobie, która dokonała modyfikacji?

Od tego masz system kontroli wersji. Odpal sobie git-blame i zobacz co tam masz.

Mogę listę swoich klas ułożyc w drzewko wg tematów, których dotyczą?

Tak, to się nazywa drzewo plików i jeśli jeszcze tego nie używasz, to wolę nie wiedzieć jak wyglądają twoje projekty.

Pisałem o drzewku klas, a nie plików, chyba że tego nie rozróżniasz.

Mam pod ręką te rysunki / filmiki ze schematami algorytmów?

Jeśli je sobie zapisałeś to tak. Poza tym IDE mają coś takiego jak "outline", które zawiera listę klas i metod w nich zawartych.</quote>

A tę listę klas mogę ułożyć tematycznie w drzewko? Rachunkowosc->Dokumenty->FakturaVatClass?
A mogę szybko znaleźć wszyskie wystąpienia użycia FakturaVatClass jako parametru wzorców?

0

Gdyby program był w bazie SQL, to można by było wyeksportować go nawet w języku suahili. Albo po polsku:

"pierwszą klasą w pliku AAA.CXX jest klasa FakturaClass. Jak napisał jej autor Taki Ataki: "ta klasa służy do wystawienia Faktury VAT". Jej publiczny interfejs składa się z następujących metod:

Kontruktory:

domyśłny - FakturaClass()

(...)"

0
Irek Szpilewski napisał(a):

Pisałem o drzewku klas, a nie plików, chyba że tego nie rozróżniasz.

Ogólnie zasadą jest, że 1 plik = 1 klasa. W większości języków obiektowych tak się pisze (zwłaszcza Java czy C#), więc to de facto to samo. Poza tym przedstaw mi co masz na myśli mówiąc "drzewko klas".

Jeśli je sobie zapisałeś to tak. Poza tym IDE mają coś takiego jak "outline", które zawiera listę klas i metod w nich zawartych.

A tę listę klas mogę ułożyć tematycznie w drzewko? Rachunkowosc->Dokumenty->FakturaVatClass?

Od tego masz przestrzenie nazw, więc tak, możesz to zrobić i praktycznie każdy język obiektowy (poza C++) to robi. Na ten przykład w Javie napisał byś to tak: bookkeeping.documents.VatInvoice lub w Ruscie bookkeeping::documents::VatInvoice.

A mogę szybko znaleźć wszyskie wystąpienia użycia FakturaVatClass jako parametru wzorców?

Chodzi Ci o szablony? Każde IDE powinno mieć tego typu funkcjonalność, którą od biedy można zasymulować zwykłym grepem.

0
winerfresh napisał(a):
Irek Szpilewski napisał(a):

Pisałem o drzewku klas, a nie plików, chyba że tego nie rozróżniasz.

A mogę szybko znaleźć wszyskie wystąpienia użycia FakturaVatClass jako parametru wzorców?

Chodzi Ci o szablony? Każde IDE powinno mieć tego typu funkcjonalność, którą od biedy można zasymulować zwykłym grepem.

A które IDE ma, takie coś?
Tak w ogóle, to jestem zdania, że jak masz ważne dane, a takimi danymi są zmienne, klasy i metody programów, to najlepiej trzymać je w tabelach SQL. Wtedy możesz z nimi robić co zechcesz.

0

A które IDE ma, takie coś?

AFAIK każde. Jak nie masz dostępu do IDE to nawet Vim pozwala użyć cscope, które oferuje podobną funkcjonalność.

Tak w ogóle, to jestem zdania, że jak masz ważne dane, a takimi danymi są zmienne, klasy i metody programów, to najlepiej trzymać je w tabelach SQL. Wtedy możesz z nimi robić co zechcesz.

LOL WUT? Ty chcesz trzymać AST C przerobione na XMLa w relacyjnej bazie danych? Nawet nie próbuję sobie wyobrazić do czego to miało by wg Ciebie służyć, bo jeśli jest choćby w połowie tak głupie jak to, to dalej wykracza poza granice mojego pojmowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1