practicalli / practicalli/clojure

Project idea: purposeful alias names - a require aliases lookup website

Open
#392 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

project
Dominant language
Makefile
Stars
117
Forks
36
PR merge metrics
No merged PRs in 30d

Description

A website where a library name can be entered and it returns the recommended alias to be used in an ns (:require ,,,) form.

Rationale
Whilst extremely common libraries that appear in the vast majority of projects can have more cryptic aliases, because they are well used. Most libraries should express the intent of their use to help the code remain clear and unambiguous

Concept
A website with a simple library lookup which returns purposeful names that can be used for an alias. A description of why the alias name was chosen, explaining how it captures the purpose / intent of the functions in that library

Results would also mention highly common aliases that are used, such as d for datomic alongside the purposeful names, so developers can have a choice. Either use a cryptic alias and assume others are aware of its purpose

Recommendations for some libraries would include referring specific functions instead of (or as well as) using an alias, e.g. clojure.test typically refers [is deftest testing]. This result would also include a description as to why this approach is preferred, as the namespace is focused on the use of this library - i.e. writing a test

Implentation options

  1. REST API so that a range of clients could be used (webUI, editor, command-line tool, etc) with persistence store (or remote store) - deployed on Heroku
  2. Self-contained ClojureScript Single Page Application with external data store (e.g. firebase, etc.) - Deployed on GitHub/GitLab pages
  3. ClojureScript REST API with Reitit with remote persistence store - deployed on GitHub/GitLab pages

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the issue body and compare the three proposed implementation options: a REST API, a self-contained ClojureScript SPA, or a ClojureScript REST API with Reitit. Define the project scope, persistence approach, and deployment target before implementation. Done means a library lookup returns purposeful and common aliases, rationale, and any recommended function references.

Written by the indexing model from the issue text.

Assessment

Tech stack
clojure
Domain
full-stack, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.