View Single Post
  #5  
Old 04-11-2013, 06:54 PM
DragonByte Tech's Avatar
DragonByte Tech DragonByte Tech is offline
 
Join Date: Feb 2010
Location: Scotland
Posts: 8,814
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by x iJailBreak x View Post
The new vB5 plugin system is ridiculous. It seems to be a developer's nightmare.
While I'll happily agree that it's got some issues, there's a great number of things in the new plugin system that - once you get over the initial hill of "AAHH EVERYTHING IS NEW I DON'T KNOW WHAT'S GOING ON HALP HALP HALP" - make it quite awesome to code for.

The fact that it enforces a directory structure makes it easier for developers to learn how to create their own mods by looking at other mods. If you see every other mod having their files in a certain way, named a certain way, classes named a certain way... Patterns start to emerge. That's a lot easier to learn than the current system, where developers can really do whatever they want - new coders will have a harder time getting into good habits (i.e. not spreading your files in a billion different vB folders which makes it harder for users to completely uninstall the mods).

My favourite new feature in vB5 is the {vb:data} tag that allows you to call APIs from the templates. This shifts vBulletin from being a code-first to a template-first system.
What I mean by this is that vB first renders the page template, then executes any PHP code you want from within that template. No more having to store your template in a PHP var and remember not to overwrite it / having to deal with other plugins overwriting the template hooks by not knowing the difference between .= and = etc.
This alone makes vB5 a lot of fun to code for.

A very close second is the Site Builder. I couldn't even begin to count the number of times myself or anyone else on our team has had a support request "So currently X is beneath Y and I want it the other way around" and we have to fiddle around with execution orders of plugins.
Who wants that? Nobody. In vB5, they can simply re-order the widgets themselves.
Not only that, but it allows people to drop the same functionality (like a Shoutbox) in multiple places on the same page. They can easily drop the Shoutbox on every page they want (and fine-tune what pages they don't want it on by simply not putting it there in the first place).

Back-end wise, the new cache system in vB5 is stupidly powerful. Being someone who loves caching things, the cache system in vB5 is a dream come true. If developers don't end up taking advantage of it to cache queries where it makes sense to do so (i.e. the result set isn't frequently modified to the point where it takes more resources to purge/recache than it does to query) I will be very upset indeed.


In short, I think the whole "this is outside my comfort zone that I've built up over the past 9 years working with vBulletin 3.x / 4.x" has clouded a lot of people's judgements when they are passing judgement over vB5's developer friendliness.

That's not to say there's no legitimate complaints, the gods know I've voiced mine on numerous occasions, but it's not terrible by any stretch of the imagination.


Fillip
Reply With Quote
3 благодарности(ей) от:
Lynne, nhawk, tbworld
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01088 seconds
  • Memory Usage 1,779KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (3)post_thanks_box_bit
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • fetch_musername
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • post_thanks_function_fetch_thanks_bit_start
  • post_thanks_function_show_thanks_date_start
  • post_thanks_function_show_thanks_date_end
  • post_thanks_function_fetch_thanks_bit_end
  • post_thanks_function_fetch_post_thanks_template_start
  • post_thanks_function_fetch_post_thanks_template_end
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete