Recent

Author Topic: Wisdom consultation  (Read 13964 times)

ezlage

  • Guest
Re: Wisdom consultation
« Reply #15 on: November 25, 2016, 06:16:46 pm »
I'm retired now, but I remember what I thought was the most important lesson I learned:

1. Find out from the client what they expect to see (particularly the first screen)
2. Find out from the client what they expect to do
3. Find out from the client how they expect to do it

minesadorada, Thank you for the tips!
In my case there is no longer a customer, but I will try to reproduce your advice by imagining myself as the end user and buyer.

Phil

  • Hero Member
  • *****
  • Posts: 2737
Re: Wisdom consultation
« Reply #16 on: November 25, 2016, 07:22:44 pm »
I avoid web development because I'm not skilful with design. I could learn about image editing and webdesigner...

It sounds like you're maybe thinking here more of Web page and site design. That's not what Web app development means. See these short articles for an introduction:

https://macpgmr.github.io/MacXPlatform/WebAppOverview.html

One key is to separate the client (UI) from the server (non-UI) parts of the app. The client will be JavaScript and runs in the user's browser. It can use JS UI toolkits like qooxdoo, jquery, extjs, etc. or be generated and sent to the client on the fly by an ASP.NET app. The server can be written with virtually any tool, for example as a Pascal CGI app, or using any variety of ASP.NET techniques, eg, http://johnnycode.com/2012/07/16/getting-json-from-asp-net-beautiful-good-bad-ugly.

Since the client app won't have access to the user's file system, that means any data that you want to persist will need to be stored on the server. That means the user will need to log in to use the app and that you'll be responsible for safeguarding the user's data, etc. Therein lies some complications, but the benefits are targeting both desktop and mobile platforms and eliminating the need to distribute and install (and upgrade) the app on each user's computer. The latter is not even permitted in many organizations except with trusted apps. A Web app goes a long way toward solving that problem.

ezlage

  • Guest
Re: Wisdom consultation
« Reply #17 on: November 25, 2016, 08:55:50 pm »
Hi
Another thing I would suggest is that unless the purpose of each procedure/function is obvious, add a comment to explain what it is supposed to do, and what each parameter is for. This will make maintenance and modification in the future much easier, particularly if it is a complex application.

Regards
Tim

Hello Tim!
Thanks for the tip!
I keep all the code I write. In those provisional or for test I always leave comments that do not let me forget anything over time. Comments are especially useful in this case because the code has not yet evolved to a stage that justifies documenting it. Also because they help me locate some file or piece of code searching for the text that I commented.

Another thing I would suggest is that unless the purpose of each procedure/function is obvious, add a comment to explain what it is supposed to do, and what each parameter is for. This will make maintenance and modification in the future much easier, particularly if it is a complex application.
On the other hand source comments are overrated. High level documentation is more important.
See:
 https://sourcemaking.com/refactoring/smells/comments

JuhaManninen, you made a great contribution to me. I did not know this site. In addition to the specific page you shared, sourcemaking.com has a lot of content that helps me. Thank you so much!

ezlage

  • Guest
Re: Wisdom consultation
« Reply #18 on: November 25, 2016, 09:05:47 pm »
I avoid web development because I'm not skilful with design. I could learn about image editing and webdesigner...

It sounds like you're maybe thinking here more of Web page and site design. That's not what Web app development means. See these short articles for an introduction:

https://macpgmr.github.io/MacXPlatform/WebAppOverview.html

One key is to separate the client (UI) from the server (non-UI) parts of the app. The client will be JavaScript and runs in the user's browser. It can use JS UI toolkits like qooxdoo, jquery, extjs, etc. or be generated and sent to the client on the fly by an ASP.NET app. The server can be written with virtually any tool, for example as a Pascal CGI app, or using any variety of ASP.NET techniques, eg, http://johnnycode.com/2012/07/16/getting-json-from-asp-net-beautiful-good-bad-ugly.

Since the client app won't have access to the user's file system, that means any data that you want to persist will need to be stored on the server. That means the user will need to log in to use the app and that you'll be responsible for safeguarding the user's data, etc. Therein lies some complications, but the benefits are targeting both desktop and mobile platforms and eliminating the need to distribute and install (and upgrade) the app on each user's computer. The latter is not even permitted in many organizations except with trusted apps. A Web app goes a long way toward solving that problem.

Phil,
You are correct, I initially understood wrong. Thank you for expanding my mind!

I'll study more about the model you proposed. It will probably help me to change some paradigms.

Thank you again!

ezlage

  • Guest
Re: Wisdom consultation
« Reply #19 on: November 25, 2016, 09:22:50 pm »
Thank you all for the invaluable help.
All links and tips have already started contributing to my projects.

I believe that in order to achieve 100% of what I would like, now I only need to discover some software that will help me in the design of the project, modeling, specification, diagrams and everything else that is possible in an integrated way.

Anyone know of any?

PT-BR:

Agradeço a todos pela inestimável ajuda.
Todos os links e dicas já começaram contribuir com os meus projetos.

Acredito que para atingir 100% do que eu gostaria, agora só preciso descobrir alguns softwares que me ajudem no desenho do projeto, modelagem, especificação, diagramas e tudo mais que for possível de forma integrada.

Algum sabe de algum?

Phil

  • Hero Member
  • *****
  • Posts: 2737
Re: Wisdom consultation
« Reply #20 on: November 26, 2016, 07:06:12 pm »
...I only need to discover some software that will help me in the design of the project, modeling, specification, diagrams and everything else that is possible in an integrated way.

But for what kind of project?

One thing you can do that does not require any special software is to separate your non-UI code from your UI code. That is, unless it's a fairly small project, I would expect that the bulk of a project's code will be in units that do not have any dependence on the user interface code. In general, these non-UI units will not use any LCL units or units that depend on LCL; they will only use FPC RTL units.

This separation will then allow you to use your project's non-UI code just about anywhere that FPC is available: desktop, server, mobile. That is, you will have gone a long way toward preserving the value of your investment in FPC skills and code.

One further step you can take to prove to yourself (and to others) that you really have created platform (and language) independent code is to put the non-UI code into a dynamic library. Now you can test your code with other languages. This allows you to use the code regardless of what UI or project integration is required. The UI then becomes just a suit of clothes that is put on for the occasion - for example, you may use Java for the UI of an Android app, or Swift for the UI of an iOS app, or JavaScript for the UI of a Web app, etc.

I've tried to write up just about everything I've ever discovered about library creation in to some articles:

https://macpgmr.github.io/MacXPlatform/PascalDynLibs.html

Good luck.

ezlage

  • Guest
Re: Wisdom consultation
« Reply #21 on: December 02, 2016, 04:45:08 am »
But for what kind of project?

Phil,
Sorry for the delay and thanks for the help!

I would love to know (if there is one) a single software that could help me create, enhance, and test my ideas, processes, methods, etc. before I start coding. Because to write the code, draw the forms and compile I already have Lazarus and FPC.

For example, software that would make it easy for me to design:
Use Case Diagram
Activity Diagram
Class diagram
Sequence diagram
Communication or collaboration diagram
State diagram
Diagram of objects
Component diagram
Deployment Diagram
Package Diagram
Diagram of composite structures
Timing diagram
Interaction Overview Diagram
Diagram of entities and relationships
Flowcharts and other diagrams

Software that also helps me in the customer consultation, analysis and survey of requirements, technical specification, usability, modularization, documentation, quality control, creation and conversion of database, import, export and data conversion, etc etc etc. Also control of tasks, costs, goals...

Coding is no longer a problem for me, but for all the rest of the activities involved in the software development process, I only have single, small, rudimentary, and non-integrated specialty softwares.

Thank you!

Now in Brazilian Portuguese:

Phil,
Desculpe pela demora e muito obrigado pela ajuda!

Eu adoraria conhecer (caso exista) um single software que pudesse me ajudar a criar, aprimorar e testar minhas idéias, processos, métodos (etc), antes de começar a codificar. Porque para escrever o código, desenhar os formulários e compilar eu já tenho o Lazarus e o FPC.

Por exemplo, um software que facilitasse para mim o desenho de:
Diagrama de casos de uso
Diagrama de atividades
Diagrama de classes
Diagrama de sequência
Diagrama de comunicação ou colaboração
Diagrama de estados
Diagrama de objetos
Diagrama de componentes
Diagrama de implantação
Diagrama de pacotes
Diagrama de estruturas compostas
Diagrama de temporização
Diagrama de visão geral de interação
Diagrama de entidades e relacionamentos
Fluxogramas e outros diagramas

Software este que também me auxiliasse na consulta ao cliente, análise e levantamento de requisitos, especificação técnica, usabilidade, modularização, documentação, controle de qualidade, criação e conversão de base de dados, importação, exportação e conversão de dados, etc etc etc. Também controle de tarefas, custos, metas...

Codificar não é mais problema para mim, porém para todo o resto das atividades envolvidas no processo de desenvolvimento de software, eu só tenho softwares de especialidade única, pequenos, rudimentares e não integrados.

Obrigado!
« Last Edit: December 02, 2016, 04:47:22 am by ezlage »

ezlage

  • Guest
Re: Wisdom consultation
« Reply #22 on: January 05, 2017, 04:33:26 am »
I finally found!  :'(

http://draw.io

avra

  • Hero Member
  • *****
  • Posts: 2592
    • Additional info
Re: Wisdom consultation
« Reply #23 on: January 05, 2017, 11:03:20 am »
I finally found!  :'(

http://draw.io

Considering all the features you have requested, you might also want to take a look at some other tools: Visual Paradigm, SciTools Understand, Sparx Enterprise Architect, Gentleware Poseidon, Peganza Pascal Analyzer, Source Code 2 Flowchart and Model Maker for Delphi. They all support Pascal.
« Last Edit: January 05, 2017, 11:05:30 am by avra »
ct2laz - Conversion between Lazarus and CodeTyphon
bithelpers - Bit manipulation for standard types
pasettimino - Siemens S7 PLC lib

 

TinyPortal © 2005-2018