[thelist] Why would I NOT use my own framework for my client's work

Renoir B. renoirb at gmail.com
Mon Oct 1 21:30:45 CDT 2012


Hello All.

I started that answer when Nadeem explained that he created his own
framework.

I thought I would share my thoughts on it, on a different thread than the
discussion-starter talking about JSON field search from Drupal database
model.

On that subject, I extensively written about it because I had to defend my
technological choice of Symfony2 at my (very-large) client.

   - My answer to people asking whether they should or not use a
framework<http://renoirboulanger.com/blog/2012/08/my-answer-to-people-asking-whether-they-should-or-not-use-a-framework-on-their-programming-language/>
   - Choosing a framework, how I personally define what is “hot” about
   them, an evaluation process (part
1)<http://renoirboulanger.com/blog/2012/07/choosing-a-framework-how-i-personally-define-what-is-hot-about-them-an-evaluation-process/>
   - .,.. and the following (not yet published) that I would call: "Why
    would I NOT use my own framework for my client's work"

---- SNIP -----

Indeed.

I totally agree with you Nadeem. Everybody can work with a well
architectured CMS, whatever patterns it is following.

A CMS is for content and when specialized requirements has to be met its
the way I would go.

My only problem is that *you* created a framework, use it into production
for client, and do not promote or get a community around it.

Not that creating a framework is bad. But think that other people WILL have
to dig in *your *code. Whatever standard it is using.

Not to mention that it may not have a as well documented API and guides as
an enterprise-level framework would.

Think of Symfony2 or Zend2 for instance.

My opinion is that; if you have the skillset to create your framework. Why
not contributing to an existing one?

For my side. I do not have yet the skillset to create a framework or use it
for my client.

Most importantly. For my clients.

I would, someday, create my own. But only to understand *why* some pattern
is used or not.

All about my choices follows the *NIH *approach.

NIH as in "not invented here".

On the NIH point of view, you may also like to see Derek Strobe's blog post
(
http://iamproblematic.com/2012/03/07/getting-over-the-not-invented-here-mentality/)
about
it, it inspired me much.

The overall idea is that Instead of charging for my time implementing
dependency injection, i'll use an existing one.


*Choosing a library*

When I saw your note about the templating engine. Please, there is a lot of
it.

No need to reinvent markup Tokenizers.... Mustach, Twig or even Laravel's
templating engine.

Even Twig would make you create your own
tokens<http://twig.sensiolabs.org/doc/recipes.html#customizing-the-syntax>
.

I purposefuly NOT chose Smarty because we are talking about (at least)
PSR-0 libraries (see php-fig, below).

We want to think of next year, not 3 years ago.


*Maturity*
*
*
Talking about maturity. Symfony2 is already 2 years old (compared to Zf2
who is less than a month).

If it is not only about maturity. Think that the PSR group is a cconsortium
of quite a few communities who decided to standardize the way to structure
libraries so they are inter-operable, PHP FIG was created for
this<http://www.php-fig.org/>
.

See below...


*Drupal, Joomla etc.*
The php-fig <http://www.php-fig.org/> now. We were talking about CMS.

I have the feeling that someday CMS will be only a GUI (think Mercury
Editor<http://jejacks0n.github.com/mercury/>or with
ContentEditable<http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#editing-0>)
to a Storage engine (as a Content Repository) <http://phpcr.github.com/>.

I think my links will say a a lot :)

Not imagine you want to deploy your site with X, Y and Z?

{
  "require": {
      "myown/vendor": "master",
      "external/lib": "3.1.*",
      "external2/template": "master"
  }
}

Or see http://getcomposer.org/doc/00-intro.md using http://packagist.org/



*All in all...*
*
*
*
*
Nowadays. If you are still:

   1. Manually using require_once(...)
   2. Adding database queries in your view (WordPress? x_X)
   3. Using loops and query hidden in a ... templating engine
   (ExpressionEngine "loops" x_X)

You may need to see the reference I made in this thread :)



My argument goes as following, mostly for what my (our) clients pays us for:

   - Learn and make good use of framework that has a reputation, good
   architecture, modular, inter-operable with other, in PHP is not a chimera
   anymore.
   - NIH please
   - Build functionality for the client who pays you. not maintain the
   serializer service mechanism... framework do that stuff. client do not care
   about it :)
   - SOLID principles?
   - Scaling? (only one database? what if I need to go deploy on a PaaS
   solution?)


<rant/>


--
Renoir Boulanger
http://renoirboulanger.com/
~

On 2012-09-21, at 8:48, "Nadeem Hosenbokus" <nadeem at nadeemh.com> wrote:
> Would another developer find it easy to maintain a site built on my
> framework? I think so. They'd need an understand of objects in PHP and
class
> abstraction and then the rest is pretty straight-forward. It's a PAC
> architecture which makes it easy to have modules and the templating system
> is very standard.

*Standards are so nice, so many to choose from :)*
*
*
*
*>
> In all, I'd say yes, another developer could maintain one of my sites.
>
> This thing about reinventing the wheel keeps niggling at me though. I can
> put together a site like mine in less than half an hour (design aside)
with

*Of course, you did it ;)*

> my framework. The CMS I have allows me to add/remove pages and manage
their
> content in as many languages as desired. Would I be able to do the same
with
> Drupal or Joomla if I put in the time to learn them?

*
*
*How can oneself beat hundreds?*


> My framework is available online if you'd like to take a look:
> http://nadeemh.com/osprey/

*Nice you did it!!*
*
*
*Now, have a look at Composer and imagine the bundling :)*


> It's not nicely bundled with an installer and it is only online because I
> was seeking collaboration to see if it was worthwhile and to improve it.
> It's not a solution for the public but rather for PHP developers and
graphic
> designers.
>
> Nadeem Hosenbokus
> (230) 766 9169
> www.nadeemh.com
>
>
>
> -----Original Message-----
> From: thelist-bounces at lists.evolt.org
> [mailto:thelist-bounces at lists.evolt.org] On Behalf Of Sarah Adams
> Sent: 21 September 2012 16:16
> To: thelist at lists.evolt.org
> Subject: Re: [thelist] searching and JSON
>
>> Now I can use my framework for pretty much anything so I stick with it
> because it does the job and I know every single line of code making it
> easier to maintain and expand.
>
> I think this is the crux of the matter. If you were a Drupal expert
> you'd probably find it just as easy to add new features to a Drupal
> site, or maybe even easier since there is a ton of already-built stuff
> out there, so there's no need to reinvent the wheel. So what happens
> if you end up passing of the development/maintenance of a project to
> someone else? Would they find it easy to navigate your framework?
>
> Sarah
> --
>
> * * Please support the community that supports you.  * *
> http://evolt.org/help_support_evolt/
>
> For unsubscribe and other options, including the Tip Harvester
> and archives of thelist go to: http://lists.evolt.org
> Workers of the Web, evolt !
>
> --
>
> * * Please support the community that supports you.  * *
> http://evolt.org/help_support_evolt/
>
> For unsubscribe and other options, including the Tip Harvester
> and archives of thelist go to: http://lists.evolt.org
> Workers of the Web, evolt !


More information about the thelist mailing list