Git Product home page Git Product logo

projectpal's Introduction

What is the pal project

It is a repository of tool functions - those like 'capitalize', 'shortenWithEllipsis', 'parseIpv4String' etc. which present in almost every project.

In the most cases developer has two alternatives:

  1. use 3rd-party libraries (like underscore.js or guava-libraries) even if you need 1-2 functions from them
  2. write own implementation but spend the time on it and probably get less quality code

Pal is not a library - it is a repository which allows to get required function implementation and include into your project. So you do not include additional libraries but include only what you need.

How it expected to work

  1. developer opens IDE (Jetbrains IDEA/Webstorm/..., Visual Studio, Notepad++, etc.)
  2. when developer needs some utility function he just enter what he want (into dialog or directly in code) like 'get next ipv4 address'
  3. system gets the corresponing function (with all dependencies) from Pal repository and adds to the user's project (in class/module named Pal by default)
  4. ... and this is for any (well, for any supported) language, so if you used some Pal function on C# then you may use the same in Java or Ruby
  5. if you did not find any function match your expectation you may write your own following pal guidelines and add to the repository. Even you wrote it on C# it will be available on other languages as well

Important note

Pal is for small utility functions, not for professional libraries (like node.js express, java JFreeChart, javascript jQuery, etc.). Big libraries use full set of language/platform possibilities, utility functions looks similar on all languages.

Project status

For now there is a working prototype - server with 3 predefined functions which can build java and ruby code and plugin for Jetbrains IDEA/Rubymine which allows to insert pal functions into your code.

To try it - see this instruction

In order to build it on your workstation - just clone the github repository and open in Jetbrains IDEA (Community edition is enough). Without IDEA you may build server using maven, but not the plugin.

TODO list

List of tasks is not well organized as there is the beginning and I'm not sure what to improve first.

  • new functions/features
    • ipv4 addresses manipulation
    • assertions (for input parameters checks)
    • method overload (for strong typization, for weak - type checks)
    • embedded expressions (lambdas)
    • several expressesions, assignments
  • unit-tests
  • other languages
    • js-client
    • js-server
  • server
    • storage (couchdb/mysql ?)
    • cache of generated functions bodies
  • client
    • documentation
    • some greetings
    • add includes (import for java, require for ruby) when adding pal function call
  • sharing model (users, access rights, approves, hierarchy of servers, ...)

projectpal's People

Contributors

alexeygrishin avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.