reactive-nfe

所属分类:Pascal/Delphi编程
开发工具:Pascal
文件大小:0KB
下载次数:0
上传日期:2020-08-10 00:08:12
上 传 者sh-1993
说明:  一个简单的项目,包含UI&UX和Delphi的 React编程的概念
(A simple project containing concepts of UI&UX and Reactive Programming to Delphi)

文件列表:
LICENSE (1067, 2020-08-09)
ReactiveNFe.dpr (2089, 2020-08-09)
ReactiveNFe.dproj (58128, 2020-08-09)
ReactiveNFe.res (59424, 2020-08-09)
Source/ (0, 2020-08-09)
Source/Controller/ (0, 2020-08-09)
Source/Controller/DTO/ (0, 2020-08-09)
Source/Controller/DTO/NotaFiscal.DTO.pas (1340, 2020-08-09)
Source/Controller/NotaFiscal/ (0, 2020-08-09)
Source/Controller/NotaFiscal/NotaFiscal.Controller.Interfaces.pas (707, 2020-08-09)
Source/Controller/NotaFiscal/NotaFiscal.Controller.pas (4308, 2020-08-09)
Source/Core/ (0, 2020-08-09)
Source/Core/MemCached/ (0, 2020-08-09)
Source/Core/MemCached/MemCached.Config.pas (1604, 2020-08-09)
Source/Core/Redis/ (0, 2020-08-09)
Source/Core/Redis/Redis.Config.pas (1835, 2020-08-09)
Source/Domain/ (0, 2020-08-09)
Source/Domain/Database/ (0, 2020-08-09)
Source/Domain/Database/Database.Connection.Interfaces.pas (297, 2020-08-09)
Source/Domain/Entities/ (0, 2020-08-09)
Source/Domain/Entities/Base.Entity.pas (684, 2020-08-09)
Source/Domain/Entities/NotaFiscal.Entity.pas (1154, 2020-08-09)
Source/Domain/Entities/NotaFiscal.Status.Entity.pas (775, 2020-08-09)
Source/Domain/Repositories/ (0, 2020-08-09)
Source/Domain/Repositories/Base.Repository.Interfaces.pas (410, 2020-08-09)
Source/Domain/Services/ (0, 2020-08-09)
Source/Domain/Services/Cache.Interfaces.pas (329, 2020-08-09)
Source/Domain/Services/ConnectionServices.Interfaces.pas (248, 2020-08-09)
Source/Domain/Services/PubSub.Interfaces.pas (485, 2020-08-09)
Source/Infrastructure/ (0, 2020-08-09)
Source/Infrastructure/Database/ (0, 2020-08-09)
Source/Infrastructure/Database/ZevolutionConnection.Database.pas (2539, 2020-08-09)
Source/Infrastructure/Database/ZevolutionConnection.RTTI.pas (1173, 2020-08-09)
Source/Infrastructure/Repositories/ (0, 2020-08-09)
Source/Infrastructure/Repositories/Base.Repository.pas (1479, 2020-08-09)
Source/Infrastructure/Repositories/NotaFiscal.Repository.pas (246, 2020-08-09)
Source/Infrastructure/Services/ (0, 2020-08-09)
Source/Infrastructure/Services/Cache/ (0, 2020-08-09)
... ...

NFe-Logo

Reactive-NFe

## Table of contents - [About the project](https://github.com/zevolution/reactive-nfe/blob/master/#about-the-project) - [Description](https://github.com/zevolution/reactive-nfe/blob/master/#description) - [Built with](https://github.com/zevolution/reactive-nfe/blob/master/#built-with) - [Installation](https://github.com/zevolution/reactive-nfe/blob/master/#installation) - [Run](https://github.com/zevolution/reactive-nfe/blob/master/#run) - [Notes](https://github.com/zevolution/reactive-nfe/blob/master/#notes) - [Acknowledgments](https://github.com/zevolution/reactive-nfe/blob/master/#acknowledgments) - [License](https://github.com/zevolution/reactive-nfe/blob/master/#license) ## About the project Reactive-NFe is an old project(begin 2019), wherein I was training interface design for Delphi. I decided to resume it because I was missing Delphi, after 10 months of programming in Java without stopping, hahaha. ## Description This project basically contains: * A simple example of how to create application interfaces that are very attractive and provide rich interaction to the user * An introduction to Reactive Programming, using two of its four pillars ([see more](https://github.com/zevolution/reactive-nfe/blob/master/https://www.reactivemanifesto.org/)): * [x] Responsive - A system of NFe which the user can monitor the status of each NFe in real-time * [ ] Resilient * [ ] Elastic * [x] Message Driven - We use an asynchronous message to establish communication between our view-layer and infrastructure-layer * Cache service to the principal numbers in user dashboard * My vision of how to would be a software development approach in which design is domain-driven(DDD), described in the book of [Uncle Bob](https://github.com/zevolution/reactive-nfe/blob/master/https://www.amazon.com.br/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215), applied in Delphi ## Built with * [FireMonkey Framework](https://github.com/zevolution/reactive-nfe/blob/master/https://en.wikipedia.org/wiki/FireMonkey) in [Delphi](https://github.com/zevolution/reactive-nfe/blob/master/https://www.embarcadero.com/products/delphi) Tokyo 10.2.3 * [Redis](https://github.com/zevolution/reactive-nfe/blob/master/https://redis.io/) 5.0.3 ## Installation 1. To clone and run this application, you'll need Git installed on your computer(or no, if you want to download **.zip**). From your command line: ```bash # Git CLI git clone https://github.com/zevolution/reactive-nfe.git # Github CLI gh repo clone zevolution/reactive-nfe ``` 2. You must have `Redis` installed on your computer. We use PUB/SUB of Redis to insert and change the state of the NFe's in the view-layer. Below in [Notes](https://github.com/zevolution/reactive-nfe/blob/master/#notes), I will provide some links that can help you. 3. To use Redis as a primary cache service, you must add the 3 primary keys to the cache. After connecting in Redis via redis-cli use the commands below: ```bash SET numerodeclientes 18729 SET numerodeusuarios 719246 SET valortotaldenotas 932669872 ``` 4. Open the project in your IDE. 5. Configure the Redis connection properties into `Redis.Config.pas` and `Redis.Cache.Service.pas` 6. Configure which cache service you want to use in FormCreate method into `Principal.View.pas` ```delphi {* You can choose between Redis and MemCached as a cache service *} //FCache := TRedisCacheService.New(TRedisConfig.New); FCache := TMemCachedCacheService.New(TMemCachedConfig.New); ``` 7. In this application, we have a personalized ListBox to present the NFe's. You must import the file `ListBoxItem1-StyleNFeNegrito.style`, which are in directory `Styles` (inside project directory) into [StyleBook1](https://github.com/zevolution/reactive-nfe/blob/master/http://docwiki.embarcadero.com/Libraries/Tokyo/en/FMX.Controls.TStyleBook) component, in PrincipalView ([see more](https://github.com/zevolution/reactive-nfe/blob/master/http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Customizing_FireMonkey_Applications_with_Styles)). ## Run You can modify `Build configurations` to **Debug** or **Release**. And use the shortcut SHIFT+F9 to build application and F9 to run with debugging. ## Notes ### Redis * You can use Redis in [RedisLabs](https://github.com/zevolution/reactive-nfe/blob/master/https://redislabs.com/redis-enterprise-cloud/pricing/) as a cloud service. They provide you a dedicated database for free, with a memory size with up `30MB` and with up to 30 connections concurrent * You can use a Docker Image. For non-production uses, in this case, a simple test, I recommend the Alpine version. I believe that is one of the lightest version, collaborating in the initialization of the container. Use the command [docker pull redis:6.0.5-alpine](https://github.com/zevolution/reactive-nfe/blob/master/https://hub.docker.com/layers/redis/library/redis/6.0.5-alpine/images/sha256-5d49b9e41e41538c64db8a8de542dc885c00b43bc6ccd4e7db1a707f2d5bfd2f?context=explore) * **ATTENTION**: For windows installation read [this article](https://github.com/zevolution/reactive-nfe/blob/master/https://redislabs.com/ebook/appendix-a/a-3-installing-on-windows/a-3-1-drawbacks-of-redis-on-windows/) ### Delphi If you do not have Delphi, you can do download and use [Delphi-CE](https://github.com/zevolution/reactive-nfe/blob/master/https://www.embarcadero.com/products/delphi/starter/free-download). ## Acknowledgments * [Thulio Bittencourt](https://github.com/zevolution/reactive-nfe/blob/master/https://github.com/bittencourtthulio) - Maintainer of the Thulio Bittencourt channel on Youtube, where he passes on much of his knowledge in his videos for free, talking about UI&UX and many other topics such as clean code, NoSQL, high-performance servers and how to make your business go high. * [Mário Guedes](https://github.com/zevolution/reactive-nfe/blob/master/https://github.com/jmarioguedes) (What Mario? haha) - Known as the great software artisan, he works as an architect of high-performance solutions. He helped me with his lectures (TDC2018) and examples on Github, showing the power of Redis * [Alan Franco](https://github.com/zevolution/reactive-nfe/blob/master/https://github.com/alandep) - Thanks for reactive programming tips ## License [MIT](https://github.com/zevolution/reactive-nfe/blob/master/https://choosealicense.com/licenses/mit/)

近期下载者

相关文件


收藏者