So what is the goal? I want to have small app, that will allow greedy HR workers to explore Projects I took part in. I believe, one's experience is the most important feature of future (IT) worker; school was long time ago, courses are OK but who knows who helped to accomplish them?
Working with some small projects using Django, I believe it's nice framework for web apps. But do we need always some full-featured machine like that? No. Sometimes microservice is ready to be written in few lines. How so?
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!"
Yeah, that is everything to write the service that is listening on port 5000 if you will run it with
FLASK_APP=hello.py flask run
That's all folks.
It was fun implementing searching in py official library for ES. It is easy as following:
from elasticsearch import Elasticsearch es = Elasticsearch() response = self.es.search(index=INDEX_PATTERN, doc_type=PROJECT_DOCTYPE, q=lucene_query)
Response is regular json so using pythonic dicts it accessing it's body will be possible.
Even having TDD approach I was able to expose search functionality for my future webapp in 2 or 3 hours. Integration testing is also easy as this flask-testing and elastic-testing examples show. All results visible so far on my github project page.
As software gets more and more integrated into our lives, the industrialization of its crafting process becomes inevitable. But the over-generalization of software engineering can be crushing the creative side of programming.